微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.htaccess 只重定向特定类型的静态内容?

如何解决.htaccess 只重定向特定类型的静态内容?

我希望将任何 .PHP 文件请求重定向到 index.PHP,或者任何对目录或不存在的静态内容的请求也应该转到 index.PHP

这是我目前所拥有的。我只是不确定如何仅重定向 .PHP 文件而不重定向图像、css、js 之类的内容

 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ index.PHP [QSA,L]

解决方法

根据您显示的示例,您能否尝试以下操作。请确保在测试您的网址之前清除浏览器缓存。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

RewriteCond %{REQUEST_URI} \.php [NC]
RewriteRule ^ index.php [QSA,L]

JS/CS 重写/重定向: 您可能需要使用 base 标签来修复您的 js 和其他相关资源。如果您使用相对路径链接 js 文件,那么该文件显然会得到 404,因为它正在寻找 URL 路径。例如,如果 URL 路径是 /file/ 而不是 file.html,那么您的相关资源将从 /file/ 加载,这不是目录,而是重写的 html 文件。要解决此问题,请使您的链接成为绝对链接或使用基本标签。在您网页的标题中添加此 <base href="/">,以便您的相关链接可以从正确的位置加载。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。