Правило .htaccess для перенаправления на родительский - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь перенаправить один из моих URL-адресов в родительскую папку, используя файл .htaccess.Я пробовал следующее правило

RewriteRule ^test/(.+)$ /test/ [L,R=301]

, найденное из перенаправления подстановочного знака htaccess в родительскую папку , но оно не работает (журналы показывают слишком много перенаправлений).

Я такжепробовал другие правила, приведенные ниже, но ни одно из них не работало

RewriteBase /
RewriteCond %{REQUEST_URI} !=/test/
RewriteRule ^(.*) /test/ [END,NC]

или

RewriteEngine on
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^test/(.+)$ /test/ [L,R=301]

ОС является сервером Ubuntu.Любая помощь или указатели приветствуются.Пожалуйста, дайте мне знать, если я смогу предоставить какие-либо другие детали для отладки.Спасибо

Ответы [ 3 ]

0 голосов
/ 08 декабря 2018

Добавьте это, чтобы отключить MultiViews:

Options -MultiViews

Документы Apache по mod_negotiation , описывают, что делает опция Multiviews, когда она включена:

Еслисервер получает запрос для / some / dir / foo и / some / dir / foo не существует, затем сервер читает каталог, ища все файлы с именем foo. *, и эффективно подделывает карту типов, которая называет все эти файлыназначая им те же типы мультимедиа и кодировки контента, которые были бы у него, если бы клиент запросил один из них по имени.Затем он выбирает лучшее соответствие требованиям клиента и возвращает этот документ.

Использование:

Options -MultiViews
RewriteEngine on
RewriteRule ^test/(.+)$ /test/ [NC,L,R=301]
0 голосов
/ 10 декабря 2018

В вашей конкретной папке

RewriteEngine On
RewriteRule ^rootFName(.*) /rFile.php  [QSA,R=301,L]
0 голосов
/ 04 декабря 2018

Следующие должны работать с учетом родительского каталога test

RewriteEngine On
RewriteRule ^(test/).* /$1 [R=301,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...