mod_rewrite и относительные ссылки HTML - PullRequest
0 голосов
/ 19 сентября 2011

Я написал простое mod_rewrite для преобразования моих уродливых URL s:

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule news\/([^\/]+)/([0-9]+)-([^\/]+)$     news.php?id=$2
  RewriteRule (.*)/images/(.*)$                     images/$2
  RewriteRule (.*)/css/(.*)$                            css/$2
  RewriteRule (.*)/js/(.*)$                         js/$2
</IfModule>

Проблема возникла сразу же, потому что все изображения, сценарии и стили запрашиваются относительно fake URL.Поэтому мне пришлось добавить следующее утверждение 3 end-of-line для regex и добавить следующие 3 правила.Я спрашиваю, хорош ли этот подход или он потребляет слишком много ресурсов?Я знаю, что это можно решить с помощью абсолютных ссылок, но моя laziness побудила меня попробовать это решение, которое имеет эффект для всего сайта.Или есть лучшее решение?

Одна вещь, которая была предложена, заключалась в добавлении косой черты в ссылки.Проблема в том, что доступ к сайту можно получить через два домена: foo.com и bar.com/baz/qux/, поэтому я действительно не могу его использовать.

Любая помощь будет принята с благодарностью.Спасибо!

1 Ответ

2 голосов
/ 19 сентября 2011

Вы также можете добавить <base href=""/> к вашим html-файлам, что сохранит вам правила перезаписи images / css / js.

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

...