Якорь страницы с mod_rewrite? - PullRequest
1 голос
/ 03 июня 2009

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

Спасибо!

1 Ответ

3 голосов
/ 03 июня 2009

На самом деле, если вы хотите, чтобы URL-адрес , полученный в результате , имел привязку, тогда да, это возможно. Только не забывайте, что в конфигах Apache # отмечает начало комментария.

Если то, что вы хотите, похоже на это - пользователь вводит

<a href="http://example.com/page/anchor" rel="nofollow noreferrer">http://example.com/page/anchor</a>
и перенаправляется на
<a href="http://example.com/?p=page#anchor" rel="nofollow noreferrer">http://example.com/?p=page#anchor</a>
- вам нужно будет использовать 301 Redirect или что-то подобное, чтобы оно не было прозрачным для пользователя.

Вывод: хотя можно написать такое правило перенаправления, оно не может быть выполнено полностью на стороне сервера. Поэтому я думаю, что вы могли бы указать /information/faq на /information.php?display=faq, а затем использовать URL-адреса, такие как:

<a href="http://example.com/information/faq#foo" rel="nofollow noreferrer">http://example.com/information/faq#foo</a>
, которые почти то, что вы хотите, плюс они не портят кеширование.

(Вау, уже полночь?)

...