mod_rewrite с косой чертой разбивает пути CSS / IMG / SCRIPTS - PullRequest
5 голосов
/ 23 июля 2011

Я пытаюсь сделать mod_rewrite первой строкой подкаталога из url, чтобы создать функциональность, аналогичную сохраненной в jsfiddle.net ссылке в классе / db. Скрипт работает нормально и переписывает.

например. URL

http://jsfiddle.net/RyEue/

Это отлично работает (загружает все CSS, скрипты и т. Д.):

http://www.domain.com/787HHJ2

Это то, что я использовал в прошлом, чтобы добиться цели.

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

http://www.domain.com/787HHJ2/

скрипт переписывания:

DirectoryIndex index.php index.html
Options +FollowSymlinks
RewriteEngine On # Turn on the rewriting engine
#RewriteBase   /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} !.
RewriteRule ^.+/?$ index.php [QSA,L]

Не уверен, что это связано с Rewritebase, я пробовал несколько способов.

PS. Я попытался установить абсолютные пути (например, src = "/ img / theimage.jpg") без удачи.

Ответы [ 2 ]

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

1. Убедитесь, что у вас есть css / images / js и т.д., связанные с корневой папкой (с косой чертой): /styles/main.css

2. Добавьте один из этих правил перед текущим:

# do not touch files with .css/.js/.jpg etc extensions
RewriteRule \.(css|js|jpg|png|gif)$ - [L]

или

# do not touch any resources in images/css/js folders
RewriteRule ^(images|css|js)/ - [L]

3. Очистить кеши браузера и перезапустить (иногда браузер может отображать кэшированную страницу / ресурс, когда исправлено правило перезаписи, что приводит к путанице).

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

Попробуйте убежать

RewriteRule ^.+\/?$ index.php [QSA,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...