Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache purl和QUERYSTRING的重写规则_Apache_.htaccess_Mod Rewrite_Redirect - Fatal编程技术网

Apache purl和QUERYSTRING的重写规则

Apache purl和QUERYSTRING的重写规则,apache,.htaccess,mod-rewrite,redirect,Apache,.htaccess,Mod Rewrite,Redirect,这个规则有什么问题 重新启动发动机 重写cond%{QUERY_STRING}!&?n=[a-z] 重写cond%{HTTP_HOST}^?:www.myconsultinghouse.com$ 重写规则^/$/login.php?n=%1[L,QSA] 重写规则^[a-z]+?[^/]*$/$1.php?n=%1[L,QSA]或 重写规则^[a-z]+?[^/]/[^/]$/$1.php?n=%1&et=$2[L,QSA]或 重写规则^[a-z]+?[^/]/[^/]/[^/]*$/$1.ph

这个规则有什么问题

重新启动发动机

重写cond%{QUERY_STRING}!&?n=[a-z]

重写cond%{HTTP_HOST}^?:www.myconsultinghouse.com$

重写规则^/$/login.php?n=%1[L,QSA]

重写规则^[a-z]+?[^/]*$/$1.php?n=%1[L,QSA]或

重写规则^[a-z]+?[^/]/[^/]$/$1.php?n=%1&et=$2[L,QSA]或

重写规则^[a-z]+?[^/]/[^/]/[^/]*$/$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

有人能帮我吗?

注意:

这个不包括在查询字符串中。 条件仅适用于以下规则,但不适用于后续规则。 查询字符串在规则匹配中不可用 由于规则模式中没有前导/,我假设它位于DOCROOT/.htaccess文件中,在这种情况下,您应该在替换目标中设置一个基并使用相对路径 因此:


这假设用户名是[a-z]+。如果您想允许数字和“

”,如果您在URL中没有任何内容,则还需要重定向。所以我会实现我的愿望:。。。谢谢你的帮助!对你来说,最重要的是清晰明了,所以选择你喜欢的。但是注意&?n=[a-z]+?将在n=&和xxn=fred上匹配。这就是单词boundary\b meta的用途。使用\bn=[a-z]*并将*替换为a+(如果名称为必填项)。此外,如果方括号术语仅为纯文本,则无提示组运算符?:是多余的。那么www.和?:www.是一样的,但是你需要www\。因为我们没有逃避。匹配任何字符。
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]