原始问题中的代码已编辑!
如何仅从域主干重写。
我正在使用.htaccess重写基于php的网站的网址。
我想改写自:
www.example.com/dir1/dir2/page.htm
收件人:
www.example.com/index.php/var1=dir1&var2=dir2&var3=page
我拥有的代码效果很好
RewriteEngine on
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)\.htm$ index.php?type=cdi23&lev=$1&sec=$2&vid=$3 [QSA,L]
但是它也可以使用任意数量的PREVIOUS目录重写URL。例如:
www.example.com/unwanted/unwanted/dir1/dir2/page.htm
还将重写为:
www.example.com/index.php/var1=dir1&var2=dir2&var3=page
如何阻止带有多余目录的URL触发重写?他们应该只返回404
答案 0 :(得分:0)
尝试匹配非贪婪:
^([^/\.]+?)/([^/\.]+?)/([^/\.]+?)