我的网址是这样的:
www.mydomain.com/index.php?param1=first¶m2=second¶m3=thirth
我想将其重写为:
www.mydomain.com/first/second/third
的.htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)$ index.php?param1=$1¶m2=$2¶m3=$3 [QSA,L]
问题是,我收到错误404(我认为服务器正在寻找目录/第一/第二/第三,而不是让root目录中的index.php从URL获取GET参数)。我错了吗?或者如何处理这个问题?
答案 0 :(得分:1)
你的正则表达式实际上是不正确的。您在目标中使用了3个反向引用值,但只捕获了2个值。
您可以使用:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?param1=$1¶m2=$2¶m3=$3 [QSA,L]