Мои ссылки испортились после использования .htaccess rewrite - PullRequest
3 голосов
/ 28 июля 2011

Я хотел, чтобы мой сайт перешел с domain.com/page.php?id=1 на domain.com/page/1

Использование RewriteRule ^page/(.*)$ page.php?id=$1 в файле .htaccess работает при переходе непосредственно на domain.com/live/1, но CSS все перепутано.

Например, вместо <link rel="stylesheet" href="style.css" type="text/css"/>, указывающего на domain.com/style.css, оно указывает на domain.com/page/style.css

.

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

Редактировать: Должен ли я начать использовать не относительные ссылки (полный путь)?

Полный .htaccess:

Options +FollowSymLinks  
RewriteEngine On  

RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f  

RewriteRule ^page/(.*)$ page.php?id=$1

Чтобы решить эту проблему, мне пришлось поставить <base href="http://domain.com/directory/" />

в заголовке моей страницы. В javascript-файлах мне приходилось создавать абсолютные пути, поскольку разные браузеры по-разному обрабатывают базовый тег.

Ответы [ 2 ]

3 голосов
/ 28 июля 2011

У меня была эта проблема. Это потому, что ваш браузер теперь предполагает, что / page / является корневым каталогом, в котором он должен начать поиск файлов CSS и т. Д. Проще говоря:

<base href="/"> 

В вашем

<head>.

Ваш браузер теперь будет искать css файлы и т.д. в корне вашего сайта.

edit: nvm, испорчено форматирование из-за публикации с моего iPod, но я вижу, что вы уже решили проблему:)

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

Чтобы решить эту проблему, мне пришлось поставить

в заголовке моей страницы. В javascript-файлах мне приходилось создавать абсолютные пути, поскольку разные браузеры по-разному обрабатывают базовый тег.

...