переписать, как справиться с бесконечной косой чертой - PullRequest
0 голосов
/ 28 октября 2011

Я пытаюсь перенаправить все входящие в один каталог в другой. команда rewriterule, которую я использую:

RewriteRule ^VirtualDirectory(.*)$ GENS/RealDirectory$1 [L,NC]

Дело в том, что я бы хотел, чтобы запрос без косой черты в VirtualDirectory был переписан так, как если бы запрос был для VirtualDirectory /

Я получаю такое поведение:

запрос к VirtualDirectory / прекрасно работает без уведомления пользователя запрос к VirtualDirectory работал отлично, но URL, показанный в brwoser: GENS / RealDirectory /

Я много чего пробовал, но не могу добиться желаемого поведения.

Если я добавлю правило

RewriteRule ^VirtualDirectory$ GENS/RealDirectory/ [L,NC]

для обработки этого конкретного случая он прекрасно работает, за исключением того, что все ресурсы страницы переписываются в папку до VirtualDirectory

1 Ответ

0 голосов
/ 28 октября 2011

Происходит следующее: внутренняя перезапись происходит без завершающей косой черты, затем вступает во владение mod_dir и браузер перенаправляет на тот же URL, но с завершающей косой чертой.Вы можете отключить mod_dir, используя DirectorySlash Off в вашем файле .htaccess.Если вы хотите использовать косую черту всегда, попробуйте изменить правило так:

RewriteRule ^VirtualDirectory/?(.*)$ GENS/RealDirectory/$1 [L,NC]
...