htaccess重定向css,js文件



我的htaccess重定向css,js文件也。我试过了,但没有成功。我的所有js文件重定向到page.php.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/(.*)$ page.php?lang=$1&page=$2 [NC,QSA,L]
RewriteRule ^(.*)$ page.php?page=$1 [NC,QSA,L]

如注释中所述,RewriteCond指令仅适用于后面的第一个RewriteRule指令。因此,对于第二条规则,您也需要重复这些条件。

然而,根据您的URL结构,如果您只是使regex更具体,您可能根本不需要这些条件——这也会更高效,因为文件系统检查相对昂贵。

例如,假设您的";语言代码";(可选的第一个路径段(由2个小写字母组成,并且pageURL路径段不包含点(否则可能会与文件扩展名混淆(,那么您可以重写指令,如下所示:

RewriteEngine On
RewriteRule ^([a-z]{2})/([^/]*)$ page.php?lang=$1&page=$2 [QSA,L]
RewriteRule ^([^/]*)$ page.php?page=$1 [QSA,L]

由于正则表达式现在限制性更强,不再冲突,因此这些指令的顺序无关紧要。

除非您有混合大小写语言代码,否则不需要NC标志。

您还可以更进一步,通过使语言路径段可选,将这两个规则合并为一个规则。langURL参数现在将始终存在,但可能为空。

RewriteRule ^(?:([a-z]{2})/)?([^/]*)$ page.php?lang=$1&page=$2 [QSA,L]

最新更新