.htaccess перезапись во вторую очередь не исключает

#.htaccess #mod-rewrite

#.htaccess #перезапись мода

Вопрос:

У меня есть подкаталог на моем локальном хостинге

Там есть файл .htaccess

 RewriteEngine On
RewriteBase /buyback/
RewriteCond %{REQUEST_URI} !^/static/*$ [NC]
RewriteRule ^(.*)$ index.php
 

Все остальные функции работают, только RewriteCond не работает

index.php имеет код

 <script type="text/javascript" src="/static/js/modal.js"></script>
 

который не загружается. И я, кажется, не могу понять, в чем проблема.

Комментарии:

1. Каков пример URL-адреса, для которого вы ожидаете загрузки скрипта, а он не загружается? Когда вы смотрите на источник веб-страницы, кода скрипта там нет?

2. localhost/buyback/static/js/modal.js я удалил / в src=»/static/js/modal.js «> но это все равно не работает… это просто нормально index.php исходный код, и когда я пытаюсь перейти по этой ссылке, она выдает мне 404

3. Таким образом, в buyback папке любой URL-адрес, который не начинается с static , перенаправляется на index.php … Чтобы протестировать его, вам нужно будет протестировать URL, подобный localhost/buyback/notstatic/blah … Это должно перенаправить на index.php

Ответ №1:

Вам нужно пропустить все файлы / каталоги из вашей перезаписи:

 RewriteEngine On
RewriteBase /buyback/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^static/ index.php [L,NC]
 

Ссылки на ваш JS-файл должны быть:

 <script type="text/javascript" src="/buyback/static/js/modal.js"></script>