.htaccess 重定向导致 css 或图像加载

发布于 2024-11-06 05:21:30 字数 391 浏览 0 评论 0原文

我有以下 .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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

御守 2024-11-13 05:21:30

典型的原因是您的 HTML 模板包含指向您的资源的相对链接。

<link rel="stylesheet" type="text/css" href="main.css">

一旦您的页面不再位于 /index.html 下而是位于 /app/index 下,就会失败。现在,您的 URL 中有一个新的虚拟目录,因此,如果您没有指定绝对路径名 /img/logo,则假定 CSS 和图像也位于 /app/ 下。 png 无处不在。

一个经典的解决方法是在模板 中添加此内容:

<base href="/">

这将强制浏览器将 / (在本例中)添加到所有相关资源链接的前面。

The typical cause is that your HTML templates contain relative links to your resources.

<link rel="stylesheet" type="text/css" href="main.css">

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>:

<base href="/">

This will force browsers to prepend the / (in this example) to all relative resource links.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文