多个Apache重写规则取决于域加上另一个重写条件中的重写条件

多个Apache重写规则取决于域加上另一个重写条件中的重写条件,apache,mod-rewrite,Apache,Mod Rewrite,你好,请帮助我,我一直在努力完成这个“简单”的重写。这是我的原始代码: ######################################################################## Willowvine RewriteCond %{HTTP_HOST} !^willowvine\.dev$ RewriteRule . - [S=1] RewriteRule ^admin/(.*)$ admininistration/$1 [QSA,L] #########

你好,请帮助我,我一直在努力完成这个“简单”的重写。这是我的原始代码:

######################################################################## Willowvine
RewriteCond %{HTTP_HOST} !^willowvine\.dev$

RewriteRule . - [S=1]

RewriteRule ^admin/(.*)$ admininistration/$1 [QSA,L]
######################################################################## EndRules

######################################################################## Dove Rules
RewriteCond %{HTTP_HOST} !^dove\.dev$

RewriteRule . - [S=2]

RewriteRule ^admin/(.*)$ admin_another/$1 [QSA,L] 
RewriteRule ^(.*)$ /client/recruiter/4021/$1 [QSA,L]
######################################################################## End Dove Rules
我不断地发现这个错误:

由于可能的原因,请求超出了10个内部重定向的限制 配置错误。使用“LimitInternalRecursion”增加 必要时限制。使用“日志级别调试”获取回溯

基本上,我想做的是:

if ${HTTP_HOST} == 'willowvine.dev/'    rewriterule 1: admin/* goes to
administration/*   else if ${HTTP_HOST} == 'dove.dev'    rewriterule
1:  admin/* goes to admin_another      rewriterule 2: if((${HTTP_HOST}
+ ${HTTP_URI}) != 'dove.dev/admin') root folder must start from /path/to/folder/start/he

在第二条规则中添加一个附加条件,以防止
^(.*)$
循环。您实际上可以合并,而不是使用
S
标志来跳过:

######################################################################## Willowvine
RewriteCond %{HTTP_HOST} !^willowvine\.dev$
RewriteRule ^admin/(.*)$ admininistration/$1 [QSA,L]
######################################################################## EndRules

######################################################################## Dove Rules
RewriteCond %{HTTP_HOST} !^dove\.dev$
RewriteCond %{REQUEST_URI} !^/client/recruiter
RewriteRule ^(.*)$ /client/recruiter/4021/$1 [QSA,L]
######################################################################## End Dove Rules
或者只是保持你原来的状态:

######################################################################## Willowvine
RewriteCond %{HTTP_HOST} !^willowvine\.dev$

RewriteRule . - [S=1]

RewriteRule ^admin/(.*)$ admininistration/$1 [QSA,L]
######################################################################## EndRules

######################################################################## Dove Rules
RewriteCond %{HTTP_HOST} !^dove\.dev$

RewriteRule . - [S=2]

RewriteRule ^admin/(.*)$ admin_another/$1 [QSA,L] 


### add conditions here for URIs that you don't want the rule to get applied to
RewriteCond %{REQUEST_URI} !^/admin_recruiter
RewriteCond %{REQUEST_URI} !^/client/recruiter
RewriteRule ^(.*)$ /client/recruiter/4021/$1 [QSA,L]
######################################################################## End Dove Rules

看起来在
RewriteCond
RewriteRule
之间有一条空行。删除那些空行,它们会破坏您的配置。我已将其更改为:RewriteCond%{HTTP_HOST}^willowvine\.dev$重写规则。-[S=1]重写规则^admin/(.*)$administration/$1[QSA,L]重写cond%{HTTP_HOST}^dove\.dev$重写规则。-[S=2]RewriteRule^admin/(.*)$admin_recruiter/$1[QSA,L]RewriteRule^(.*)/client/recruiter/4021/$1[QSA,L]但是现在当我转到willowvine.dev时,它会将我带到“/client/recruiter/4021/”文件夹,当我转到willowvine.dev/admin/时,它会将我带到正确的文件夹,但这两条规则的dove.dev又给了我一个内部500错误。@arkascha,这是胡说八道。实际上,最后两个重写规则行连接在一起,这将破坏配置,但我认为这只是一个复制粘贴错误。@cashmire请尝试格式化问题的最后部分,以确保可读性。您还可以解释[S](跳过)标志的用法;这似乎与您想要的相反。@noodl apache中没有允许您根据域对多个规则进行分组的标志,[S]表示如果{HTTP_HOST}!=dove.dev[S]kip接下来的几行[S=2](2)行。我仍然得到一个500错误:我想要的是,如果当前域是“dove.dev”,我只想运行两行,如果不是,apache必须跳过这些规则。但问题是,我将在这个.htaccess文件中设置多个这样的域^willowvine\.dev$重写规则。-[S=1[S=1[S=1]重写规则的1[S=1[S[S=1[S[S=1[S=1[S[S=1[S=1[S=1[S=1[S=1]1[1[1[1[1[1[1[1]1[1[1[1[1[1[1[1[1[1[1[1[1[1[1[1[1[3])))))3月月日日日日日日日日日日日日日日日,从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从本本本本本本本本本的的的的第35日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日的35月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日3月35日日日日日日日方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩摩_HOST}^dove\.dev$重写规则。-[S=1[S=1]1)重写规则1[S=1]1[S S=1[S S=1]重写规则1[S[S=1]重写规则1[S[S=1[S[S=1[S[S=1[S[S=1[S[S[S=1 1[S[S=1[S[S=1[S=1[S=1]1 1[S[S=1]1[S[S=1]1[1 1[1[S,1]1[1,1,1[1]他们他们他们他们,1,1,1,1]他们他们他们他们他们他们的从从从从从从从从从从从从从从从从从从从第三的的第三五五五五五五五五的的的的的的的任何任何任何任何周五周五周五周五周五周五周五周五周五周五周五周五周五周五周五周五周五周五周五周五周五周五周五周五周五周五周五周五周五周五的的的的的各各各各各各本35现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场现场所以这行代码的问题是:RewriteRule^(.*)/client/receinter/4021/$1[QSA,L]@cashmire这是我说的,
^(.*))$
regex导致了循环,因此您需要一个条件,以便已经以
/client/recruiter/
开头的URI不会再次被重写。我的答案中的条件阻止了这一点。感谢@jon Lin试图帮助我,但我将其更改为此,但仍然无法工作,这给了我一个500错误:RewriteCond%{HTTP_HOST}^willowvine\.dev$重写规则。-[S=1[S=1[S=1]重写规则的1[S=1[S[S=1[S[S=1[S=1[S[S=1[S=1[S=1[S=1[S=1]1[1[1[1[1[1[1[1]1[1[1[1[1[1[1[1[1[1[1[1[1[1[1[1[1[3])))))3月月日日日日日日日日日日日日日日日,从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从从本本本本本本本本本的的的的第35日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日的35月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月月日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日日重写cond%{HTTP#u HOST}^dove\.dev$重写规则。-[S=2]重写规则^admin/(.*)$admin\u另一个/$1[QSA,L]重写cond%{REQUEST\u URI}^/管理员/招聘人员重写规则^(.*)$/client/recruiter/4021/$1[QSA,L]