.htaccess问题:JS和CSS Rending index.php

时间:2015-03-06 16:56:29

标签: .htaccess

我正在使用WAMP安装并通过index.php文件路由所有内容。当我删除.htaccess文件时,我的标题中的CSS和JS文件被调用,所以文件路径是正确的,但是一旦我再次插入.htaccess文件,Chrometools会在包含我的JS文件时抛出此错误

Uncaught SyntaxError: Unexpected token <

在查看Chrometool的网络&gt;&gt;响应时,它会显示JS文件包含index.php文件呈现的所有内容。

这是我的代码     RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} \.(gif|jpe?g|png|js|css|swf|php|ico|txt|pdf|xml)$ [OR]
RewriteRule ^([^/]*)$ index.php?_page=$1
RewriteRule ^([^/]*)/([^/]*)$ index.php?_page=$1&_action=$2 [QSA,L]
RewriteRule ^([^/]*)/([^/?]*)/(.*)$ index.php?_page=$1&_action=$2&$3 [QSA,L]

我认为%{REQUEST_FILENAME}!-f应该阻止在直接调用文件时重写文件?

更新

我发现引起问题的那一行是第二个RewriteRule。

RewriteRule ^([^/]*)/([^/]*)$ index.php?_page=$1&_action=$2 [QSA,L]

因为我的JS和CSS存储在项目根目录下的两个目录中,所以规则是将文件定向到我的index.php。

在我注释掉RewriteRule

之前,这些命令都没有任何影响
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !\.(gif|jpe?g|png|js|css|swf|php|ico|txt|pdf|xml)$ [NC]

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

尝试并更改此行。

RewriteCond %{REQUEST_FILENAME} \.(gif|jpe?g|png|js|css|swf|php|ico|txt|pdf|xml)$ [OR]

到此

RewriteCond %{REQUEST_FILENAME} !\.(gif|jpe?g|png|js|css|swf|php|ico|txt|pdf|xml)$ [NC]

看到的对你有用。

修改

您需要所有规则的条件。重写条件仅适用于其后的第一条规则。你也可以拥有它,如果它匹配静态内容,那么就不要做任何事情。以这种方式尝试你的规则。

RewriteCond %{REQUEST_FILENAME} \.(gif|jpe?g|png|js|css|swf|php|ico|txt|pdf|xml)$ [NC]
RewriteRule ^(.*)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ index.php?_page=$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)$ index.php?_page=$1&_action=$2 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/?]*)/(.*)$ index.php?_page=$1&_action=$2&$3 [QSA,L]