简体   繁体   English

.htaccess RewriteRule允许子目录级别

[英].htaccess RewriteRule to allow levels of sub-directory

I have the following RewriteRule code 我有以下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]

What I need it to do i this: 我需要做的是这个:

If the url is something like mydomain.com/test go to mydomain.com/page.php?menu=test 如果网址类似于mydomain.com/test请转到mydomain.com/page.php?menu=test

If the url is something like mydomain.com/test/site go to mydomain.com/page.php?menu=test&submenu=site 如果该网址类似于mydomain.com/test/site请转到mydomain.com/page.php?menu=test&submenu=site

If the url is something like mydomain.com/test/site/stuff go to mydomain.com/page.php?menu=test&submenu=site&submenu2=stuff 如果该网址类似于mydomain.com/test/site/stuff请转到mydomain.com/page.php?menu=test&submenu=site&submenu2=stuff

These seem to clash with each other though. 这些似乎相互冲突。

Any idea how I can improve it to make it work.? 知道如何改进它才能使它工作吗?

Keep your rules like this: 保持这样的规则:

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]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM