Вопрос

Я пытаюсь настроить привязки страниц на веб-сайте, который использует 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
это почти то, что вам нужно, плюс они не портят кеширование.

(Ого, уже полночь?)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top