RewriteRules 不加载某些 css。 js和图片
Posted
技术标签:
【中文标题】RewriteRules 不加载某些 css。 js和图片【英文标题】:RewriteRules not load some of css. js and images 【发布时间】:2021-12-19 14:58:22 【问题描述】:目前,当我使用 RewriteRules 重写我的 URL 时,我无法加载一些 css、js 和图像文件。
我.htaccess
的内容是:
<IfModule mod_rewrite.c>
RewriteEngine On
Options +FollowSymlinks
# Options +SymLinksIfOwnerMatch
RewriteBase /
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ news.php?newstype=$1&newsid=$2&newstitle=$3 [L,QSA,NC,B]
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME\.php -f
RewriteRule ^(.*)$ $1.php
# RewriteRule ^(css|js|img)/?$ /$1 [L,QSA,R=301]
</IfModule>
这是我网站的结构:
[root]
css
vender
bootstrap.css
plugin
plugin.css
style.css
js
vender
bootstrap.js
plugin
plugin.js
main.js
images
sliders
slider1.jpg
slider2.jpg
1.jpg
2.jgp
index.php
.htaccess
这就是我加载JS
和CSS
文件的方式:
/css/style.css
/css/vender/bootstrap.css
/css/plugin/plugin.css
/js/main.js
/js/vender/bootstrap.js
/js/plugin/plugin.js
它只加载style.css
文件和main.js
文件。谁能告诉我,不加载子文件夹中的其他文件有什么问题?
如果我评论这行RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ news.php?newstype=$1&newsid=$2&newstitle=$3 [L,QSA,NC,B]
,那么一切都很好。
我还尝试将相对路径更改为绝对路径,并在 <head>
</head>
标签之间添加 <base href="/">
。但这两种方法都不适合我。
希望有人可以帮助我解决这个问题。
【问题讨论】:
【参考方案1】:使用您显示的示例/尝试,请尝试遵循 htaccess 规则文件。
在测试您的网址之前,请确保清除您的浏览器缓存。 基本上我们需要将news.php的重写规则放在其他重写规则之下。
还要确保在规则中禁用 MultiViews
功能,以确保只找到准确的内容。
<IfModule mod_rewrite.c>
RewriteEngine On
Options +FollowSymlinks
Options -MultiViews
RewriteBase /
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %DOCUMENT_ROOT/$1\.php -f [NC]
RewriteRule ^(.*)/?$ $1.php [QSA,L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ news.php?newstype=$1&newsid=$2&newstitle=$3 [L,QSA,NC,B]
</IfModule>
【讨论】:
谢谢您,先生,它的工作。我从没想过规则顺序会成为问题。我可以知道这两行是需要的吗?RewriteCond %REQUEST_FILENAME !-f RewriteCond %REQUEST_FILENAME !-d
@user3733831,这些行确保仅当请求针对不存在的页面时才执行此规则,否则不会触摸/执行。让我知道这里是否还需要任何其他澄清,干杯。
好的,谢谢,我现在检查一下
先生,现在它正在工作......先生,我能知道将来添加新规则是否会出现问题吗?
对不起,先生,您必须花更多时间帮助我。非常感谢您的支持。以上是关于RewriteRules 不加载某些 css。 js和图片的主要内容,如果未能解决你的问题,请参考以下文章
spring boot css 和 js 资源在某些情况下不加载
在不使用 .htaccess 文件的情况下,我应该将 RewriteRules 放在 Apache2 的哪里?
HTACCESS RewriteRules 带有漂亮的 SEO 网址(不允许访问物理文件位置)