.htaccess 重定向导致 css 或图像加载
我有以下 .htaccess 来强制所有文件通过 index.php 文件,我刚刚注意到我对 css、javascript、图像的所有引用都停止工作。我认为是 htaccess 导致了这个问题,如果是的话,我该如何解决这个问题?
这是我的 .htaccess 文件:
<IfModule mod_rewrite.c>
# redirect all calls to index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [PT,L]
</IfModule>
I have the following .htaccess to force all files to go through a index.php file and I just noticed that all my references to the css, javascript, images, stop working. I think is the htaccess that is causing this, if so, how can I solve this?
Here is my .htaccess file:
<IfModule mod_rewrite.c>
# redirect all calls to index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [PT,L]
</IfModule>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
典型的原因是您的 HTML 模板包含指向您的资源的相对链接。
一旦您的页面不再位于
/index.html
下而是位于/app/index
下,就会失败。现在,您的 URL 中有一个新的虚拟目录,因此,如果您没有指定绝对路径名/img/logo,则假定 CSS 和图像也位于
/app/
下。 png 无处不在。一个经典的解决方法是在模板
中添加此内容:
这将强制浏览器将
/
(在本例中)添加到所有相关资源链接的前面。The typical cause is that your HTML templates contain relative links to your resources.
Will fail as soon as your pages no longer reside under
/index.html
but in/app/index
. You now have a new virtual directory in your URL, hencewhy the CSS and images are assumed to be located under/app/
too if you didn't specify absolute path names/img/logo.png
everywhere.A classic workaround is to add this in your template
<head>
:This will force browsers to prepend the
/
(in this example) to all relative resource links.