这条规则有什么问题?
上的RewriteEngine
RewriteCond%{QUERY_STRING}!&?n = [a-z]?
RewriteCond%{HTTP_HOST} ^(?:www。)([a-z] +)。myconsultinghouse.com $
RewriteRule ^ / $ /login.php?n=%1 [L,QSA]
RewriteRule ^([a-z] +)?([^ /] *)$ /$1.php?n=%1 [L,QSA] OR
RewriteRule ^([az] +)?([^ /] )/([^ /] )$ /$1.php?n=%1&et=$2 [L,QSA ]或
RewriteRule ^([az] +)?([^ /] )/([^ /] )/([^ /] *)$ /$1.php?n=%1& ; et = $ 2& ne = $ 3 [L,QSA]
我想要这样:
如果用户访问该页面 - www.NameOfUser.domain.com/(NULL)
重定向/login.php?n=NameOfUser
如果用户访问该页面 - www.NameOfUser.domain.com/page
重定向到/page.php?n=NameOfUser
如果用户访问该页面 - www.NameOfUser.domain.com/page/group
重定向到/page.php?n=NameOfUser&et=group
如果用户访问该页面 - www.NameOfUser.domain.com/page/group/event
重定向/page.php?n=NameOfUser&et=group&ne=event
任何人都可以帮助我?
答案 0 :(得分:0)
注意:
?
未包含在查询字符串中。 /
,我认为这是在DOCROOT/.htaccess
文件中,在这种情况下,您应该设置一个基础并在替换中使用相对路径目标这样:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.([a-z]+)\.myconsultinghouse\.com$
RewriteRule ^ - [E=USER:%1]
RewriteCond %{QUERY_STRING} \bn=[a-z]*\b [OR]
RewriteCond {%ENV:USER} =""
RewriteRule ^ - [S=4]
RewriteRule ^/$ login.php?n=%{ENV:USER} [L,QSA]
RewriteRule ^([a-z]+)/?$ $1.php?n=%{ENV:USER} [L,QSA]
RewriteRule ^([a-z]+)/(.*?)/?$ $1.php?n=%{ENV:USER}&et=$2 [L,QSA]
RewriteRule ^([a-z]+)/(.*?)/(.*?)/?$ $1.php?n=%{ENV:USER}&et=$2&ne=$3 [L,QSA]
这假定用户名为[a-z]+
。如果您想允许数字和_
\w+