2017-09-25 1 views
0

Ich umadressiere ein http www. URL zu einem neuen nicht www. Domain bei https, aber ein bestimmtes URL-Muster hat sich in der Struktur geändert, deshalb würde ich gerne eine ReWrite-Regel dafür in htaccess verwenden.mod_rewrite - Umleiten zu verschiedenen Protokoll-, Domänen- und geänderten Abfragezeichenfolgen

Alt:

http://www.example.com/travel.php?cat=cat1&id=1&title=title-string 
http://www.example.com/travel/cat1/1/title-string 

Neu:

https://newdomain.com/travel/cat1-title-string 

Also für die Umleitung, verschwindet die "id" Parameter vollständig, aber ich möchte die "Katze" Parameter und Bindestrich das Präfix Parameter "title" in der neuen URL

Ich denke, das ist möglich, aber ich kann nicht herausfinden, wie? Wenn dies nicht der Fall, werde ich für eine Regel ohne die Katze Parameter regeln:

https://newdomain.com/travel/title-string 

Ich möchte eine oder Ausdruck verwenden, um die „Katze“ entsprechen: (cat1 | cat2 | cat3)

+0

Sie haben zwei URLs aufgeführt als "Alt" -Eingang. Welcher von ihnen sollte in das neue Format konvertiert werden? Beide? – CAustin

Antwort

1

Für die erste Art von URL tun Sie dies:

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] 
RewriteCond %{QUERY_STRING} ^cat=([^&]*)&id=[^&]*&title=(.*)?$ [NC] 
RewriteRule ^travel\.php$ https://newdomain.com/travel/%1-%2? [R=301,L] 

Für die zweite URL Sie dies tun:

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] 
RewriteCond %{REQUEST_URI} ^\/travel\/([^\/]*)\/[^\/]*\/(.*)?$ [NC] 
RewriteRule ^(.*)$ https://newdomain.com/travel/%1-%2 [R=301,L] 

Wenn cat1 nur Arbeit für einige Spezial Werte sein sollten wir diese neu zu definieren:

Für die erste Art von URL Sie dies tun:

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] 
RewriteCond %{QUERY_STRING} ^cat=(cat1|cat2|cat3)&id=[^&]*&title=(.*)?$ [NC] 
RewriteRule ^travel\.php$ https://newdomain.com/travel/%1-%2? [R=301,L] 

Für die zweite URL Sie dies tun:

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC] 
RewriteCond %{REQUEST_URI} ^\/travel\/(cat1|cat2|cat3)\/[^\/]*\/(.*)?$ [NC] 
RewriteRule ^(.*)$ https://newdomain.com/travel/%1-%2 [R=301,L] 
Ersetzen

cat1 | cat2 | cat3 mit Ihren Werten

Verwandte Themen