URL с разметкой концевых слешей - как это исправить, не используя базовый тег? - PullRequest
2 голосов
/ 24 сентября 2010

Я занимаюсь разработкой веб-сайта и установил следующие правила htaccess

RewriteEngine On
#RewriteRule ^([0-9]+)?$ index.php?page=$1
#RewriteRule ^([0-9]+)/([0-9]+)?$ index.php?page=$1&post=$2
RewriteRule ^([A-Za-z0-9-]+)?$ index.php?pagename=$1
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)?$ index.php?pagename=$1&post=$2

Это гарантирует, что вместо http://www.mysite.com/index.php?page=2 показа страницы

я получу возможность использовать более дружественныйметод http://www.mysite.com/about-us

* примечание Я не включил косую черту.

На этой странице мои CSS-файлы представлены как:

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

и находится по адресу www.mysite.com/css/style.css

И это хорошо работает, однако, если я хочу включить косую черту (т. Е. http://www.mysite.com/about-us/)

Тогда мои файлы CSS не загружаются, и я получаюошибка, когда исходный браузер Firefox сообщает:

Запрошенный URL http://www.mysite.com/about-us/css/style.css не найден на этом сервере.

Это происходит потому, что страница определяет, что мы должны быть каталогом, а нестраницу.

Мне не нравится использовать тег basehref, например <base href="http://www.mysite.com/" />

Есть ли другие варианты?

1 Ответ

0 голосов
/ 24 сентября 2010

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

Теперь, чтобы исправить эту неправильную ссылку, у вас есть два варианта:

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

Поскольку вы не хотите использовать элемент BASEвам, вероятно, потребуется настроить URL-адрес, который вы используете для ссылки на внешний ресурс.

Вместо этого проще всего использовать абсолютный путь URL-адреса /css/style.css, чтобы он не зависел от фактического базового пути URL-адреса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...