Назад | Перейти на главную страницу

htaccess для перезаписи всех файлов в index.php

Мне нужно переписать все 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 флаг, так как строка запроса добавляется к учреждение по умолчанию (хотя я ожидаю, что вы все равно будете разбирать строку запроса из исходного запроса в своем скрипте).