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

Перенаправить, но загрузить из другой папки

Я использую этот код:

RewriteEngine on
RewriteRule ^(.*)/exampelFile exampelFile.php?data=$1 [L]

и моя проблема в том, что страница не загружает мой файл css и js. Кажется, что страница php сама загружается

www.example.com/some text/exampelFile...

помимо

www.example.com/exampelFile?data=some text...

и поэтому он не находит файлы css и js

Это связано с тем, что ваше правило перезаписи выполняет только внутреннюю перезапись и не перенаправляет браузер на этот URL-адрес. Поэтому браузер все еще находится на странице www.example.com/some_text/exampelFile; все относительные ссылки и местоположения в HTML вашего exampelFile.php относятся к этому местоположению, а не к фактическому местоположению файла, поскольку они получены браузером.

Вы можете предотвратить это, сделав перенаправление с помощью RewriteRuleс флаг R:

'redirect|R [=code]' (принудительное перенаправление)

Замена префикса на http://thishost[:thisport]/ (что делает новый URL-адрес URI) для принудительного внешнего перенаправления. Если код не указан, HTTP-ответ 302 (ПЕРЕМЕЩЕНА ВРЕМЕННО) будет возвращен.

Результат:

RewriteEngine on
RewriteRule ^(.*)/exampelFile /exampelFile.php?data=$1 [L,R=301]