Привязка страницы с помощью mod_rewrite?
-
06-09-2019 - |
Вопрос
Я пытаюсь настроить привязки страниц на веб-сайте, который использует mod_rewrite (Apache2, работающий на Ubuntu Server 9.04).
Мой файл htaccess выглядит так:
RewriteEngine On
RewriteRule ^information.php/([A-Za-z0-9-]+)/?$ information.php?display=$1 [NC,NE]
Если бы я использовал обычный URL-адрес, запрос выглядел бы примерно так: http://mydomain/information.php?display=faq#cost
Я надеюсь получить что-то вроде этого:http://mydomain/information/faq/cost
Это возможно?Насколько я понимаю, modrewrite игнорирует привязки страниц и с этим справляется браузер?Я предполагаю, что смогу каким-то образом использовать mod_rewrite для включения в запрос информации о привязке, но мне не удалось найти ничего, документирующего это, и я безуспешно пытался написать это сам в течение нескольких часов.
Спасибо!
Решение
На самом деле, если вы хотите в результате URL-адрес для привязки, тогда да, это возможно.Только не забывайте, что в конфигурациях Apache # обозначает начало комментария.
Если то, что вы хотите, похоже на это - пользователь вводит
http://example.com/page/anchorи перенаправляется на
http://example.com/?p=page#anchor- вам нужно будет использовать 301 Redirect или что-то в этом роде, чтобы это не было прозрачно для пользователя.
Заключение:Хотя написать такое правило перенаправления возможно, его нельзя сделать полностью на стороне сервера.Поэтому я думаю, вы могли бы указать /information/faq
к /information.php?display=faq
а затем используйте URL-адреса, такие как:
http://example.com/information/faq#fooэто почти то, что вам нужно, плюс они не портят кеширование.
(Ого, уже полночь?)