У меня проблема с переключением CMS со старого на новый, поэтому я пытаюсь правильно перенаправить URL-адреса.
Вот несколько примеров URL, которые я хотел преобразовать:
#-1) http://www.mysite.com/?dispatch=search_data&features=hash_tag #-2) http://www.mysite.com/index.php?dispatch=search_data&features=hash_tag
По сути, оба они идентичны, за исключением того, что первый не имеет index.php в URL.
Я получил следующее, чтобы код работал частично:
RewriteCond %{QUERY_STRING} dispatch=(.*) RewriteRule ^$ http://www.mysite.com/? [L,R=301]
Приведенный выше код работает для # -1 (когда нет index.php), но когда есть index.php, он не работает.
Любая помощь / руководство очень ценится.
Спасибо
__ _ __ _ __ _ ___ UPDATE _ __ _ __ _ __ _ __ _ __
В соответствии с запросом целевой URL должен быть следующим: http://www.mysite.com/
http://www.mysite.com/
Что значит "работает"?
Вероятно, вам следует опубликовать пример того, как вы хотите, чтобы новый URL выглядел, учитывая старый URL.
Но в любом случае, частью вашей проблемы является то, что строка RewriteRule специально исключает index.php и любую другую страницу на вашем сайте.
RewriteRule
index.php
То, что вы написали, в основном означает:
if the query string contains "dispatch=...": redirect requests FOR THE HOME PAGE ONLY (^$) to http://www.mysite.com/
RewriteCond %{QUERY_STRING} dispatch=(.*) RewriteRule ^(index.php)?$ http://www.mysite.com/? [L,R=301]
Вы пытались изменить вторую часть, чтобы включить часть "index.php"?
RewriteRule ^$ http://www.mysite.com/index.php? [L,R=301]