我想仅在出现错误时重定向(服务器状态503)。没有错误,这是重定向脚本,工作正常:
Redirect /abc https://www.abc.com/pqr.html
Redirect /cde https://www.cde.com/pqr.html
但是,在所有情况下,这会将/ abc重定向到https:// www.abc.com/pqr.html。我想要这个重定向只在出现错误的情况下。语法如下:
ErrorDocument 503 https://www.abc.com/pqr.html
将包含503错误消息的所有网址重定向到https:// www.abc.com/pqr.html。但是,我希望将带有503错误消息的/ cde重定向到https:// www.cde.com/pqr.html
关于如何做的任何线索?
答案 0 :(得分:0)
这对我来说非常有用。在Apache论坛中得到了这个答案:
<VirtualHost x.x.x.x:80>
ServerName www.mysite.com
<Location /books>
ErrorDocument 503 http://www.mypartnersite.com/books
</Location>
<Location /music>
ErrorDocument 503 http://www.mypartnersite.com/music
</Location>
...
</VirtualHost>
答案 1 :(得分:-1)
首先让我们了解ErrorDocument指令是无条件的,并且不能在.htaccess中包含if cond then ErrorDocument
类型的表达式。
然而,有一种解决方法可以实现这一目标。为此,您需要使用mod_rewrite捕获这些条件,并且应该使用自定义错误代码重定向。然后你可以拥有自己的自定义错误代码的ErrorDocument。例如:
RewriteRule ^cde/invalidUrl - [L,R=425]
ErrorDocument 425 https://www.abc.com/pqr.html
上面的ErrorDocument只会影响/cde/*
个URI,不会影响其他URI。