2009-06-21 3 views
0

Я использовал mod_rewrite переписать ссылки на мой сайт, как так: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]

Спасибо!

ответ

5

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

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

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

0

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

0

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

Смежные вопросы