301 Перенаправить, но исключить пространство имен - PullRequest
0 голосов
/ 13 ноября 2010

ПРЕДПОСЫЛКА :
У меня есть приложение Rails, где моей домашней страницей является products / index.

Я использую следующий код в своем файле .htaccess для перенаправления запросов отproducts / root.

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*products\ HTTP/
RewriteRule ^(.*)products /$1 [R=301,L]

Работает отлично.Запросы к / products перенаправляют в root, а запросы к products / [id] по-прежнему перенаправляются на products / id, как мне хотелось бы.

ПРОБЛЕМА :
Единственная проблема заключается вчто у меня есть раздел администратора с пространством имен / admin.И в этом разделе администратора у меня есть /products.
Так что теперь, когда мой пользователь-администратор находится в разделе администратора сайта и нажимает на ссылку "продукты", он должен быть перенаправлен на URL / admin / products.Однако правило перезаписи перенаправляет его на url / admin

ВОПРОС
Как исключить префикс admin из кода перенаправления, который я перечислил выше?

Я предполагаю, что где-то в регулярном выражении я мог бы добавить что-то вроде: [^ admin] Но я не могу заставить что-либо работать.

Спасибо.

1 Ответ

0 голосов
/ 13 ноября 2010

Для начала добавьте еще одно условие перезаписи:

RewriteCond %{REQUEST_URI} !^admin

Это отключит следующие правила перезаписи для любого запроса, начинающегося с admin.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...