使用mod_rewrite重定向ErrorDocument自定义页面(500,503)?

问题描述:

我想在IBM HTTP Server上使用自定义页面,并使用重写该代码缩短URL(WCS)的缩短URL。使用mod_rewrite重定向ErrorDocument自定义页面(500,503)?

下面是我使用的规则:

RewriteCond %{REQUEST_URI} /en/store(.*) 

RewriteRule ^/en/store(.*) $1 [R=301,L] 

RewriteCond %{REQUEST_URI} /((?!wcsstore/)(?!search/)(?!cont/)(?!cons/)(?!cs/)(?!wcs/)(?!cache/)(?!webapp/)(?!swagger/)(?!solr/))(.*) 

RewriteRule ^/((?!wcsstore/)(?!search/)(?!cont/)(?!cons/)(?!cs/)(?!wcs/)(?!cache/)(?!webapp/)(?!swagger/)(?!solr/))(.*) /webapp/wcs/stores/servlet/en/store/$2 [PT,L] 

当我不使用缩短的URL代码,然后ErrorDocument的500 /500.html自定义页面工作正常。但是当我使用缩短URL代码时,ErrorDocument 500/500.html自定义页面不起作用。而当我使用像ErrorDocument 500这样的字符串“服务器出现问题时,我们很快就会回来”,它既可以缩短URL代码,也可以缩短URL代码。

+0

请添加问题以您的问题。这些规则与这个话题有什么关系? – covener

+0

我想在IBM HTTP Server上使用500&503 errorducument上的自定义页面以及使用重写该代码缩短URL(WCS)的缩写网址 – Lucky

+0

当我不使用缩短URL代码时,然后使用ErrorDocument 500/500.html Custom网页正常工作。但是当我使用缩短URL代码时,ErrorDocument 500/500.html自定义页面不起作用。而当我使用像ErrorDocument 500这样的字符串“服务器出现问题时,我们很快就会回来”,它既可以缩短URL代码,也可以缩短URL代码。 – Lucky

您的最终RewriteRule匹配/500.html,因此它被重写。我建议报废添加一个额外的RewriteCond,它只是处理错误doc URL,而不是增加更难以阅读负面的lookahead。

注:在现有条件看起来已经冗余:

RewriteCond %{REQUEST_URI} /((?!wcsstore/)(?!search/)(?!cont/)(?!cons/)(?!cs/)(?!wcs/)(?!cache/)(?!webapp/)(?!swagger/)(?!solr/))(.*) 
RewriteCond %{REQUET_URI} ^/\d\d\d.html 
RewriteRule ^/((?!wcsstore/)(?!search/)(?!cont/)(?!cons/)(?!cs/)(?!wcs/)(?!cache/)(?!webapp/)(?!swagger/)(?!solr/))(.*) /webapp/wcs/stores/servlet/en/store/$2 [PT,L]