Мне нужно переписать все URL-адреса, даже .js, .css, изображения и т. Д., В index.php
Я пробовал это
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,QSA]
Но, похоже, это не работает для css и изображений
RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [L,QSA]
Наличие двух условий, одно из которых проверяет соответствие запроса файлу, а другое, проверяет, что это не так, довольно бессмысленно. Однако это может вызвать цикл перезаписи. Вам нужно убедиться, что вы не переписываете переписанный запрос на index.php
. Другими словами, исключить index.php
от переписать.
Например, если вы хотите переписать все тогда вам просто нужна одна директива:
RewriteRule !index\.php$ index.php [L]
Это означает, что для каждого запроса, который не (!
префикс) для index.php
переписать это на index.php
.
Нет необходимости в подшаблонах захвата (т.е. (.*)
в вашем оригинале шаблон), так как это не похоже на ваш сценарий. (?) Нет необходимости в QSA
флаг, так как строка запроса добавляется к учреждение по умолчанию (хотя я ожидаю, что вы все равно будете разбирать строку запроса из исходного запроса в своем скрипте).