重定向但从另一个文件夹加载

重定向但从另一个文件夹加载

我正在使用这个代码:

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 文件

答案1

这是因为您的重写规则仅进行内部重写,不会将浏览器重定向到该 URL。因此,浏览器仍然在页面上www.example.com/some_text/exampelFile;您的 HTML 中的所有相对链接和位置exampelFile.php都是相对于该位置,而不是相对于实际文件位置,因为它们是由浏览器获取的。

您可以通过使用以下方式进行重定向来防止这种情况RewriteRule旗帜R

'redirect|R [=code]'(强制重定向)

在 Substitution 前加上前缀 (使新 URL 成为 URI)以强制进行外部重定向。如果没有给出代码, 将返回http://thishost[:thisport]/HTTP 响应(临时移动)。302

结果:

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

相关内容