Проблема перезаписи URL .htaccess (скрипты не загружаются) - PullRequest
3 голосов
/ 27 февраля 2011

У меня проблема с перезаписью URL в .htaccess.

Вот мой код перезаписи :

RewriteEngine on
RewriteBase /

RewriteRule     ^terms(.*)  terms.php [L,nc]
RewriteRule ^formgate\/([a-zA-Z0-9]{64,64})$ formgate.php?g=$1 [L,nc]

Когда страница загружается, она функционирует правильно, за исключением того, что все мои таблицы стилей, файлы JavaScript и т. Д. Не загружаются должным образом. Если вы проверяете ошибки, это означает, что 404 не найден и что $ не определено. Спасибо

1 Ответ

4 голосов
/ 14 марта 2011

Эта проблема часто возникает из-за использования относительных URL-адресов в таблицах стилей или файлах javascript и объединения его со структурой виртуального каталога.Если у вас есть переписать, как это:

RewriteRule ^articles/(.*)$ articles.php

Тогда у вас есть URL, как:

http://example.com/articles/2011/03/14/title-of-the-article

, который содержит HTML:

<link rel="stylesheet" type="text/css" href="css/general.css" />

независимо от того, еслиВаш файл artices.php находится в корне вашего веб-каталога, браузер ничего не знает об этом, так как вопросы mod_rewrite скрыты от браузера.Поэтому он запросит файл:

http://example.com/articles/2011/03/14/title-of-the-article/css/general.css

, который, очевидно, не существует.Поэтому я рекомендую указать URL относительно вашего веб-корня.Например:

<link rel="stylesheet" type="text/css" href="/css/general.css" />

Помните / перед theURL.

Обратите внимание на следующее: когда ваш URL начинается с символа /, это означает путь относительно корень веб-страницы .Посмотрите на этот пример структуру директории:

/
    /index.html
    /afolder
        /afolder/stylesheets
            /afolder/stylesheets/first.css
            /afolder/stylesheets/second.css
        /afolder/images
            /afolder/images/a.jpg
    /otherfolder
        /otherfolder/something.html
...