Как внутренне переписать / на / домашнюю страницу с mod_rewrite - PullRequest
2 голосов
/ 25 июня 2010

Хорошо, это должно быть просто, но у меня немало проблем с этим. По сути, я пытаюсь переписать http://server.com/ в http://server.com/homepage, но я хочу, чтобы он переписывал только внутренне - пользователь никогда не увидит URL /homepage. Я попробовал это:

RewriteRule ^$ /homepage [L]

И он правильно соответствует URL, но выдает перенаправление 301, а не просто обрабатывает его внутренне - пользователь перенаправляется на http://server.com/homepage. Как мне это изменить?

Я чувствую, что это что-то довольно простое, и я полностью упускаю это, так что, надеюсь, кто-то там может помочь!

1 Ответ

3 голосов
/ 25 июня 2010

Предполагая, что homepage является каталогом, попробуйте это вместо:

RewriteRule ^$ /homepage/

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

Правка: Ах да, это mod_dir и DirectorySlashопция пытается очистить пропущенную косую черту URL.Если у вас нет косой черты, обработчик DirectoryIndex не вызывается, и, поскольку mod_rewrite просто перезаписывает URL-адрес до того, как произойдет эта обработка, и DirectorySlash по умолчанию установлены наOn, mod_dir выполняет перенаправление на URL, завершивший косую черту.

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