Запретить RewriteRule влиять на загрузку скриптов и таблиц стилей - PullRequest
0 голосов
/ 07 апреля 2020

.htaccess:

Options +FollowSymLinks -MultiViews -Indexes
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ index.php?url=$1 [NC,QSA,L]    # <= This is the problem

HTML Head:

<!DOCTYPE html>
<html>
<head>
    <script src="./scripts/jquery-3.4.1.min.js"></script>
    <link rel="stylesheet" href="./styles/styles.css">
</head>
[...]

Кажется, что RewriteRule предотвращает загрузку всех локальных сценариев и таблиц стилей ...

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 07 апреля 2020

с помощью RewriteRule вы перезаписываете все файлы, даже файлы ./*.js и ./*.css.

Вы должны добавить RewriteCond, чтобы попытаться:

Options +FollowSymLinks -MultiViews -Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [NC,QSA,L]    # <= This is the problem

Таким образом apache перезаписывает несуществующие файлы, такие как foo, bar, ... в индекс. php.

...