.htaccess modrewrite仅来自域主干

时间:2019-01-10 11:33:17

标签: php apache .htaccess mod-rewrite

原始问题中的代码已编辑!

如何仅从域主干重写。

我正在使用.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

1 个答案:

答案 0 :(得分:0)

尝试匹配非贪婪:

^([^/\.]+?)/([^/\.]+?)/([^/\.]+?)