Htaccess打破了css和javascripts

时间:2017-03-29 23:25:30

标签: regex .htaccess mod-rewrite

RewriteRule ^([^/]*)/([^/]*)$ index.php?sayfa=$1&id=$2 [L]
我有一个像这样的htaccess代码,但它破坏了CSS,javascripts和图像。像这样发生的事情

sayfa = css

id = style.css

2 个答案:

答案 0 :(得分:3)

我建议只使用重写条件检查文件是否存在:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)$ index.php?sayfa=$1&id=$2 [L]

这基本上说,如果请求的文件名实际上不存在于磁盘上并且不是磁盘上存在的目录,那么尝试应用该规则。

答案 1 :(得分:1)

在该规则之前使用condition确认该请求不适用于jscss个文件。

RewriteCond %{THE_REQUEST} !(?:css|js)$
RewriteRule ^([^/]*)/([^/]*)$ index.php?sayfa=$1&id=$2 [L]

正则表达式演示:https://regex101.com/r/7WPKGh/1/

?:是非捕获组。 |是替代。 $是字符串的结尾。

对于jpegjpggifpng,可以将其更新为:

RewriteCond %{THE_REQUEST} !(?:css|js|jpe?g|png|gif)$
RewriteRule ^([^/]*)/([^/]*)$ index.php?sayfa=$1&id=$2 [L]