2016-06-09 7 views
1

Я пытаюсь перенаправить URL вроде этого:301 Перенаправление GET параметр

http://originalwebsite.com/event/detail.html?id=13

в

http://newwebsite.com/events

Я попытался следующие в моем .htaccess файле:

redirect 301 /event/detail.html?id=13 /events 

но это не так. orking ...

Я также попытался это:

RewriteCond %{QUERY_STRING} /event/detail.html?id=13 
RewriteRule (.*) /events [R=301,L] 

Может кто-нибудь сообщить мне о том, что я делаю не так? Это довольно стандартное перенаправление ...

параметр GET не требуется передавать, я просто хочу указать старую страницу на новой странице.

Большое спасибо

После некоторого дальнейшего исследования я обнаружил, что вы не можете передать переменные в Redirect поэтому я alterthed код в поле ниже:

RewriteCond %{QUERY_STRING} id=13$ 
RewriteRule (.*) /events? [L,R=301] 

Это работает, однако этот вопрос У меня есть, что это перенаправление применяется к любому URL-адресу с добавленным к нему id=13. Мне нужно быть более конкретным, поскольку я хочу перенаправить /event/detail.html?id=13 в/events

ответ

1

(. *) - шаблон для всех, поэтому, если вы применяете правило для только ури, вы можете сопоставить с этим uri в RewriteRule

RewriteCond %{QUERY_STRING} id=13$ 
RewriteRule ^event/detail\.html$ /events? [L,R=301] 
+1

Благодарим за то, что он отлично работал. Чтобы прояснить мой выше код работал, но потому, что я использовал '(. *)', Он бы соответствовал перенаправлению ко всем URL-адресам, это правильно? – Javacadabra