Mod_Rewrite:重写规则相互冲突

时间:2013-12-21 17:13:48

标签: regex apache .htaccess mod-rewrite

我想将主页mydomain.com重定向到mydomain.com/index.php?cat=home

这是我的htacess文件规则:

RewriteRule index.php  index.php?cat=home [L]
RewriteRule (.*)-live-streaming-online.html  index.php?cat=$1 [L]

当我的网站中的每个页面都活动时,无论cat被重定向到index.php?cat = home

这个htacess出了什么问题?

1 个答案:

答案 0 :(得分:0)

DOCUMENT_ROOT/.htaccess文件中列出这样的规则:

RewriteEngine On

RewriteRule ^(.+?)-live-streaming-online\.html$ /index.php?cat=$1 [NC,L,QSA]

RewriteCond %{THE_REQUEST} \s/+(index\.php)?[\s/?] [NC]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^ /index.php?cat=home [L]

关键是使用代表Apache收到的原始请求的%{THE_REQUEST}。使用来自RewriteRule的URI模板的其他内容可能会根据您的其他规则进行更改。