Apache2.4-透明重定向到子文件夹
我透明地重定向每个请求HTML、css、js,。。。到我的静态站点所在的子文件夹\u站点Apache2.4-透明重定向到子文件夹,apache,.htaccess,redirect,mod-rewrite,Apache,.htaccess,Redirect,Mod Rewrite,我透明地重定向每个请求HTML、css、js,。。。到我的静态站点所在的子文件夹\u站点 RewriteCond %{REQUEST_URI} !^/_site.* RewriteRule ^(.*)$ _site/$1 [L] 这基本上是可行的。虽然我觉得很奇怪,但我必须使用重写条件来阻止迭代: AH00124:由于可能的配置错误,请求超出了10个内部重定向的限制。如果 毕竟,我在使用,那么,我怎么会以递归结束呢?!? 如果我试图阻止直接访问example.com//u site/favi
RewriteCond %{REQUEST_URI} !^/_site.*
RewriteRule ^(.*)$ _site/$1 [L]
这基本上是可行的。虽然我觉得很奇怪,但我必须使用重写条件来阻止迭代:
AH00124:由于可能的配置错误,请求超出了10个内部重定向的限制。如果
毕竟,我在使用,那么,我怎么会以递归结束呢?!?
如果我试图阻止直接访问example.com//u site/favicon.ico这样的站点文件夹,请在第一行前面加上前缀:
RewriteRule ^_site.* - [R=403,NC,L]
RewriteCond %{REQUEST_URI} !^/_site.*
RewriteRule ^(.*)$ _site/$1 [L]
然后,在合法访问example.com/favicon.ico上,我得到一个403
显然,每个请求都需要另一轮。合法的,然后在“第二轮”匹配禁止的规则。那么,这里怎么了
为什么“last”不代表“last”?有什么变化吗,即在Apache 2.2和2.4之间?因为有很多事情发生了变化。htaccess在那里…Cough,“last”不代表“last”。它只是指
“现在退出此文件中的重写,忽略其余行”
但这也意味着
·使用新重写的url重新运行整个htaccess
如果你的重写规则太过具体以至于无法触发递归,那么你可能会多年都没有注意到一些事情……即使说实话
所以,各位,快乐递归。为了真正结束一切
…分别在我的扩展版本中:
RewriteRule ^_site.* - [R=403,NC,END]
RewriteCond %{REQUEST_URI} !^/_site.*
RewriteRule ^(.*)$ _site/$1 [END]
结束不痛,但结束意味着我
RewriteRule ^_site.* - [R=403,NC,END]
RewriteCond %{REQUEST_URI} !^/_site.*
RewriteRule ^(.*)$ _site/$1 [END]