Временный перенаправление 302 с .HTACCESS и MOD-REWRITE Выражение выражения

StackOverflow https://stackoverflow.com/questions/3441754

Вопрос

Я пытаюсь сопоставить кучу перенаправленных для моего веб-сайта с в основном переехал в другую папку на сервере. Мне нужно сделать 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]
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top