У меня есть это правило в файле .htaccess находится в директории с именем clips/
:mod_rewrite с относительным путем Перенаправлением
RewriteRule ^mlk/?$ segment/index.php?clip=1 [R=301,QSA,L]
То, что я намерен это, что, когда кто-то посещает http://example.local/clips/mlk
они перенаправляются на http://example.local/clips/segment/index.php?clip=1
То, что фактически случается, когда кто-то посещает example.local/clips/mlk
, они перенаправляются на example.local/var/www/example/clips/segment/index.php?clip=1
Я не уверен, почему он это делает. Если изменить правила перезаписи к следующему:
RewriteRule ^mlk/?$ /segment/index.php?clip=1 [R=301,QSA,L]
Пользователь перенаправляется example.local/сегмент/index.php клип = 1, который по-прежнему неправильно?. Я не хочу указывать абсолютный путь в случае, если эти файлы перемещаются по дереву каталогов веб-сайта. Как я могу заставить это работать относительно, а не абсолютно?
Директива RewriteBase работает - но есть ли способ заставить это работать без использования директивы RewriteBase? –
Я изменил условие на 'RewriteCond% {REQUEST_URI}^(/ [^ /] +/([^ /] + /) *) [NC]', и теперь он отлично работает с вложенными каталогами. Спасибо. –
Последнее не работает, когда требуется, чтобы правила работали независимо от того, где (и насколько глубоко) в пространстве имен находится каталог. –