我正在努力将服务器从一个盒子转移到另一个盒子,并在今晚进行大规模的代码更新。 要做到这一点,我想build立一个redirect,以便正常的网站访问者进入一个页面。 但开发人员和testing人员和客户去主要网站。
我在想,403redirect是做这件事的方法。 这是我正在使用的代码:
Order allow,deny deny from 80.195.185.214 allow from all ErrorDocument 403 /holding/index.html <Files /holding/index.html> allow from all </Files>
目前我只是redirect我的知识产权,今天晚上我会交换。
无论如何,我得到的问题“这个网页有一个redirect循环”在持有页面上。 很明显,“全部允许”指令并没有被执行。
有谁知道我可能会出错?
HTTP响应码403是“禁止的”。 这不是redirect。
错误消息“此网页有一个redirect循环”表示有一个redirect发生在某处(这意味着一个3xx响应,如301或302)。 你可能有一个.htaccess文件,或者可能有一些Apacheconfiguration的其他部分导致redirect被作为响应发送。
尝试使用curl -I
或wget -q -S -O /dev/null
来请求页面,以确切地找出正在发送的响应。
订单允许,拒绝 – >订单拒绝,允许
http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#order
允许,拒绝首先,评估所有允许指令; 至less一个必须匹配,否则请求被拒绝。 接下来,所有Deny指令都被评估。 如果有任何匹配,请求被拒绝。 最后,默认情况下,拒绝任何不符合Allow或Deny指令的请求。
拒绝,允许首先,评估所有拒绝指令; 如果匹配,请求将被拒绝,除非它也匹配Allow指令。 任何不符合任何允许或拒绝指令的请求都是允许的。
好的 – 我现在正在为其他人回答我自己的问题。 首先,这两位受访者都帮助跟踪这个问题。
问题是,当使用VirtualHosts时,.htaccess中的Files指令被忽略,Location和Directory不起作用。
解决方法非常简单。 您正在尝试打开的子文件夹中创build另一个.htaccess。