Текущая ситуация
RewriteRule ^$ /index.php?page=Portal [R=301,L]
Когда пользователь заходит на сайт и переходит на «корневой» URL домена (RegExp «^ $»), он перенаправляется на /index.php?page=Portal
.
Это работает.
Теперь у нас есть «index.php? Page = Portal» в индексе Google, и у нас есть тонны ссылок на эту страницу в различных местах по всему Интернету.
Намеченная новая ситуация
Мы хотим, чтобы страница портала отображалась в корневом URL - без перенаправления. Это не проблема ... Просто удалите перенаправление:
RewriteRule ^$ /index.php?page=Portal [L]
Теперь мы также хотим, чтобы старый URL перенаправлял на новое место, и вот где я терплю неудачу, но не могу понять, почему:
RewriteCond %{QUERY_STRING} ^page=Portal$
RewriteRule ^index.php$ http://www.jacatu.de/? [R=301,L]
Как только я сделаю это, я попаду в цикл перенаправления:
![alt text](https://i.stack.imgur.com/CXiPE.png)
(Когда я изменяю на 302 в .htaccess, я вижу 302 перенаправления, поэтому кажется, что цикл действительно вызван mod_rewrite)
Но почему? Все правила помечены как last [L] - поэтому я думаю, что могу исключить, что правило 2 вызывает правило 1.