htaccess переписать, чтобы создать дружественные URL - PullRequest
0 голосов
/ 26 июля 2011

Следующее правило работает, но оно меняет URL-адрес в адресной строке, который не предназначен.

RewriteRule ^network/(.*)$ http://www.example.com/network.php?networkUrl=$1 [L]

Следующее правило перенаправляет, URL остается прежним, но все изображения, включенные в файл network.php, становятся неверными ссылками ...

RewriteRule ^network/(.*)$ network.php?networkUrl=$1 [L]

Есть ли способ заставить эту работу?

Ответы [ 2 ]

5 голосов
/ 26 июля 2011

Это потому, что ваш браузер интерпретирует пути как относительные.

Чтобы решить эту ссылку, ваши изображения и CSS с абсолютными путями, т. Е. <img href="image.jpg" /> становится <img href="/image.jpg" />

То же самое относится к CSS так

<link href="stylesheets/foo.css" media="print" rel="stylesheet" type="text/css"/> 

становится

<link href="/stylesheets/foo.css" media="print" rel="stylesheet" type="text/css"/> 

Таким образом, все ссылки на ресурсы работают, как и ожидалось, при ссылке на любую глубину как /foo/bar/baz/script.php и т. Д.

0 голосов
/ 26 июля 2011

Также может помочь установка HTML-тега href на вашей странице:

<base href="http://www.domain.com/" />

тогда все ваши относительные изображения, таблицы стилей или файлы javascript будут относиться к этому базовому href.

http://www.w3.org/wiki/HTML/Elements/base

...