Временный перенаправление 302 с .HTACCESS и MOD-REWRITE Выражение выражения
-
27-09-2019 - |
Вопрос
Я пытаюсь сопоставить кучу перенаправленных для моего веб-сайта с в основном переехал в другую папку на сервере. Мне нужно сделать http://www.site.com/index.php?page=anypage. идти к http://www.site.com/newfolder/index.php?page=anypage.. Отказ Дело в том http://www.site.com/index.php. а также http://www.site.com/index.php?page=home. должен оставаться нетронутым. Как я могу сделать это?
Я пробовал следующее в .htaccess. Файл, но я добрался до ошибки. Я действительно не знаю, как тестировать это тоже.
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^/index.php?page=(.*)$ http://www.site.com/newfolder/index.php?page=$1 [R=302,NC]
RewriteRule ^/index.php?page=home http://www.site.com/index.php?page=home [R=302,NC,L]
Теперь я подумал, что это временно, поэтому я должен знать хо, чтобы изменить его! На следующей неделе ссылки будут снова перенаправляться к корневому серверу. Кроме того, что я должен сделать, чтобы восстановить нормальное перенаправление ??
Решение
Если я правильно следил за своим сценарием, вы хотите что-то вроде этого:
RewriteEngine On
RewriteCond %{QUERY_STRING} !=""
RewriteCond %{QUERY_STRING} !page=home
RewriteRule ^index.php /newfolder/index.php [R,L]
Что касается тестирования, я предпочитаю попробовать правила на локальном тестовом сервере. Если у вас полный контроль над сервером (как есть в случае локально), есть некоторые mod_rewrite
Директивы, которые помогут вам войти в систему, что происходит, и это может быть полезно в отладке. Документация модуля Больше информации об этом.
Редактировать: Когда вы хотите переключиться, измените RewriteRule
выше нравится так:
RewriteRule ^newfolder/index\.php /index.php [R,L]