.htaccess RewriteRule以允许子目录的级别



我有以下重写规则代码

RewriteRule ^(.*)/(.*)/(.*)$ /page.php?menu=$1&submenu=$2&submenu2=$3 [L,QSA,NC]
RewriteRule ^(.*)/(.*)$ /page.php?menu=$1&submenu=$2 [L,QSA,NC]
RewriteRule ^(.*)$ /page.php?menu=$1 [L,QSA,NC]

我需要它做的是:

如果url类似于mydomain.com/test,请转到mydomain.com/page.php?menu=test

如果url类似于mydomain.com/test/site,请转到mydomain.com/page.php?menu=test&submenu=site

如果url类似于mydomain.com/test/site/stuff,请转到mydomain.com/page.php?menu=test&submenu=site&submenu2=stuff

然而,这些似乎相互冲突。

你知道我如何改进它以使它发挥作用吗。?

保持您的规则如下:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ /page.php?menu=$1&submenu=$2&submenu2=$3 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/?$ /page.php?menu=$1&submenu=$2 [L,QSA]
RewriteRule ^([^/]+)/?$ /page.php?menu=$1 [L,QSA]

最新更新