2016-07-17 5 views
0

Ich möchte eine URL von: http://some-url/pl/news/ zu http://some-url/blog umleiten. aber wenn der Benutzertyp auch http://some-url/news/ (ohne/pl) ist, möchte er es auch umleiten zu: http://some-url/blog. Aus diesem Grund habe ich eine Regel:Regel neu schreiben in .htaccess

RewriteRule (pl)?/news(.*) /blog/ [R=301,L] 

Wenn ich es in Regex Tester testen Sie es in beiden Fällen passt entweder mit/pl oder ohne sie. aber wenn ich versuche, diese Regel im .htaccess-Tester zu testen, stimmt sie nur überein, wenn es eine URL mit /pl gibt. Könnte mir jemand das erklären, warum passiert das? Und was ist der richtige Weg, diese Regel richtig zu schreiben?

+0

Mögliche Duplikate von [Tipps zum Debuggen von .htaccess Rewrite-Regeln] (http://stackoverflow.com/questions/9153262/tips-for-debugging-htaccess-rewrite-rules) – jpaljasma

Antwort

0

Ich bin nicht 100% sicher, warum das passiert, also ist mein Vorschlag zu versuchen, dies in Ihre .htaccess-Datei zu setzen und zu sehen, ob das funktioniert.

RewriteEngine on 
RewriteBase/

RewriteCond %{REQUEST_URI} /pl/news(.*) [OR] 
RewriteCond %{REQUEST_URI} /news(.*) 
RewriteRule .* /blog [R=301] 
+0

Leider funktioniert es nicht –

0

Probieren Sie etwas wie dies vielleicht

RewriteRule ^(pl/)?news/?$ /blog/ [R=301,L] 
1

Mit htaccess in Ihrem Root-Ebene Ihres Webservers, wie Sie eine Seite auf eine andere umleiten ist:

RewriteRule ^url-string-to-redirect$ http://www.yourdomain.com/your-new-url-string [R=301,L] 

Oder

Redirect 301 /path/to-old-url http://www.cyourdomain.com/path/to-new-url 

Um die co umleiten ntents eines ganzen Verzeichnis in ein anderes verwenden Sie die folgende Liste:

RewriteRule ^subdirectory/(.*)$ /anotherdirectory/$1 [R=301,NC,L] 

Um den Inhalt eines ganzen Verzeichnis in das webserving Wurzel zu umleiten:

RewriteRule ^subdirectory/(.*)$ /$1 [R=301,NC,L] 

Um den Inhalt eines Unterverzeichnis auf eine andere Domain zu umleiten, sondern in das gleiche Unterverzeichnis

Redirect 301 /subdirectory http://www.anotherdomain.com/subdirectory 

Stellen Sie sicher, dass die Öffnung der .htaccess-Datei die zwei Codezeilen enthält, unter dem das Apache-Modul ermöglicht die URLS neu zu schreiben, die n Platz unter ihnen Ihre Umleitungen

Options +FollowSymLinks 
RewriteEngine On 

Redirect URLs von alten zu neuen Domain Mit 301 Redirects In .htaccess

Wenn Sie eine Website von einem alten Domain auf eine neue Domain wechseln müssen, müssen Sie umleiten all Ihre Seiten-URLs, wenn htaccess Ihr Freund ist.

Der folgende Code wird 301 URL-Weiterleitungen für die www und nicht-www-Version von "olddomain.com" in die neue Domäne "newdomain.com" erstellen.

Fügen Sie diese .htaccess-Datei zur Webroot der OLD-Site hinzu und laden Sie die Dateien von der alten Site auf die neue hoch, um einen nahtlosen Wechsel von einer alten Domain zu einer neuen zu sehen.

So unten das Beispiel Umlenken wird alle URLs von olddomain.com zu newdomain.com

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\.olddomain\.com$ 
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L] 
RewriteCond %{HTTP_HOST} !^olddomain\.com$ 
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L] 

Sie können dies auch auf eine Sub-Domain gelten - so das folgende Beispiel wird Umleiten alle URLs von subdomain.olddomain.com zu subdomain.newdomain.com

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} ^subdomain.olddomain.com$ 
RewriteRule ^(.*)$ http://subdomain.newdomain.com/$1 [R=301,L] 
RewriteCond %{HTTP_HOST} ^www.subdomain.olddomain.com$ 
RewriteRule ^(.*)$ http://subdomain.newdomain.com/$1 [R=301,L] 

eine Website zu zwingen, das sicheres Protokoll SSL zu verwenden, um die gesamte Website über HTTPS laufen Sie eine einfache Bearbeitung auf die .htaccess-Datei im Document-Root machen.

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 

Um einen bestimmten Ordner oder Verzeichnis zu zwingen, über SSL zu dienen, eine .htaccess-Datei in diesem Ordner erstellen und folgendes gilt:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} somefolder 
RewriteRule ^(.*)$ https://www.domain.com/somefolder/$1 [R,L] 

Dies setzt voraus, SSL ist auf der Domäne aktiviert auf ein Apache Web Server mit aktiviertem Modul mod_rewrite.