htaccess 更改后 css 停止作为样式表工作

After htaccess changes the css stop working as stylesheet

我的 css 文件有一个奇怪的问题。 在我将 htaccess 文件更改为此

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{THE_REQUEST} /eventDetails\.php\?id=([0-9]+)&name=(.+)\sHTTP [NC]
RewriteRule ^ /%1/%2? [L,R]
RewriteRule ^([^/]+)/([^/]+)/?$ /eventDetails.php?id=&name= [L]
</IfModule>

我的 css 文件停止加载到网站的所有页面。

我的 public_html 文件夹包含

使用 Google Chrome 开发者工具时,css 文件出现此错误

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://something.gr/css/style.css".

javascript 个文件出现此错误

owl.carousel.js:1 Uncaught SyntaxError: Unexpected token <

Network 选项卡中的一些图片

没有 .htaccess 文件

如您所见,Content-Type 是 text/css .. 应该是

使用 .htaccess 文件

正如您在这里看到的 mime.type returns 它作为 text/html

我试过的。

首先。在 <title> html 标签之后我进入了

<base href="/">

其次。我试图将 .htaccess 文件更改为此

    <IfModule mod_rewrite.c>
    RewriteEngine on
AddType application/javascript js
AddType text/css css
    RewriteCond %{THE_REQUEST} /eventDetails\.php\?id=([0-9]+)&name=(.+)\sHTTP [NC]
    RewriteRule ^ /%1/%2? [L,R]
    RewriteRule ^([^/]+)/([^/]+)/?$ /eventDetails.php?id=&name= [L]
    </IfModule>

最后我检查了我的专用服务器 usr/local/apache/conf/

在 mime.types 文件中 text/css css 的注释与 application/javascript js

我不知道我还应该做什么。

你的第二条规则

RewriteRule ^([^/]+)/([^/]+)/?$ /eventDetails.php?id=&name= [L]

/css/style.css 重写为 /eventDetails.php?id=css&name=style.css

如果您想从该规则中排除现有文件,您可以在其前面加上

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

也可以将第一条规则更改为

RewriteCond %{QUERY_STRING} id=([0-9]+)&name=(.+)
RewriteRule ^eventDetails\.php$ /%1/%2? [L,R]

为了防止重定向循环,我们在开头插入

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]

你当然不需要这个,如果你保持现有的条件和规则反对 THE_REQUEST


所以完整的规则变成

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]

RewriteCond %{QUERY_STRING} id=([0-9]+)&name=(.+)
RewriteRule ^eventDetails\.php$ /%1/%2? [L,R]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/?$ /eventDetails.php?id=&name= [L]