RewriteRules 未加载某些 css。 js和图像

RewriteRules not load some of css. js and images

目前,当我使用 RewriteRules 重写我的 URL 时,我无法加载一些 css、js 和图像文件。

我的 .htaccess 的内容是:

<IfModule mod_rewrite.c>
    RewriteEngine On

    Options +FollowSymlinks
    # Options +SymLinksIfOwnerMatch

    RewriteBase /

    RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ news.php?newstype=&newsid=&newstitle= [L,QSA,NC,B]

    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME}\.php -f 
    RewriteRule ^(.*)$ .php

    # RewriteRule ^(css|js|img)/?$ / [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

这是我加载 JSCSS 文件的方式:

/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=&newsid=&newstitle= [L,QSA,NC,B],那么一切都很好。

我还尝试将相对路径更改为绝对路径,并在 <head> </head> 标记之间添加 <base href="/">。但是这两个都不适合我。

希望有人能帮我解决这个问题。

根据您显示的 samples/attempts,请尝试遵循 htaccess 规则文件。

请确保在测试您的网址之前清除您的浏览器缓存。 基本上我们需要将 news.php 的重写规则放在其他重写规则下。

同时确保禁用规则中的 MultiViews 功能以确保只找到准确的内容。

<IfModule mod_rewrite.c>
RewriteEngine On
Options +FollowSymlinks
Options -MultiViews

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/\.php -f [NC]
RewriteRule ^(.*)/?$ .php [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ news.php?newstype=&newsid=&newstitle= [L,QSA,NC,B]

</IfModule>