mod_rewrite принимает все ссылки на странице - PullRequest
0 голосов
/ 21 июня 2009

Я использовал mod_rewrite, чтобы переписать ссылки на моем сайте следующим образом:

mysite.com/store/<store_id>/<store_name>/<page>
mysite.com/store.php?id=<store_id>&page=<page>

например:

mysite.com/store/1313/johnny-walker-inc/13
mysite.com/store.php?id=1313&page=13

Однако, в результате, все мои ссылки, которые мы размещаем, теперь начинаются в конце ссылки, например:

mysite.com/send_message.php

стало

mysite.com/store/1313/johnny-walker-inc/send_message.php

Как я могу это исправить?

Вот мой mod_rewrite код, если я ошибаюсь с ним:


RewriteRule ^store/([0-9]+)/[^/]+/([0-9]+)$ store.php?storeid=$1&page=$2 [L]

Спасибо!

Ответы [ 3 ]

5 голосов
/ 21 июня 2009

Вам нужно сделать ссылки относительно корня, например:

<a href="/send_message.php">link</a>

Обратите внимание на косую черту перед send_message.php.

0 голосов
/ 21 июня 2009

Другие решения включают BASE href или просто переписывают все элементы страницы, на которые может ссылаться мнимый корень контекста, который вы показываете клиенту.

0 голосов
/ 21 июня 2009

Я лично вижу только одно решение: просто сделайте все ваши ссылки абсолютными. Это не проблема напрямую с mod_rewrite, а браузерный способ интерпретации этих ссылок. С их точки зрения у вас есть структура каталогов, и они соответственно интерпретируют относительное положение.

...