我在URL重写方面遇到了一些问题。
我写了一条没有基本密钥的规则,如下所示: -
RewriteRule ^en/([\w-]+)/([\w-=]+)/([\w-=]+)/([\w-=]+)$ landing.php?n=$1&p=$2&c=$3&k=$4 [QSA,L]
RewriteRule ^([\w-]+)/([\w-=]+)/([\w-=]+)/([\w-=]+)$ landing.php?n=$1&p=$2&c=$3&k=$4 [QSA,L]
我有以下网址: -
http://localhost/site/en/video/vi/ca/key //en URL
http://localhost/site/video/vi/ca/key //normal URL
以上两个网址都运行良好。
但是在URL下面创建问题,这应该不起作用
http://localhost/site/en/video/ca/key
网址,与普通网址一样。这是第二条规则。这里的第一条规则不起作用。 GET [' n']显示 n = en ,但不应该,因为此处不存在 vi ,或者这应该 n =视频。
请检查并指导我。
提前致谢。
答案 0 :(得分:2)
你必须在htaccess的最开头添加RewriteBase
,如下所示
RewriteBase /site/
RewriteRule ^en/(([\w-]+)\/){1,4} landing.php?n=$1&p=$2&c=$3&k=$4 [QSA,L]
RewriteRule ^([\w-]+)/([\w-=]+)/([\w-=]+)/([\w-=]+)$ landing.php?n=$1&p=$2&c=$3&k=$4 [QSA,L]