0

我想在 IBM HTTP Server 上的 500 和 503 错误文档上使用自定义页面,以及缩短 URL 也使用重写该代码以缩短 URL (WCS)。

以下是我正在使用的规则:

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 "Server in a problem so We will be back" 这样的字符串时,在两种情况下都可以使用缩短的 URL 代码或不使用缩短的 URL 代码。

4

1 回答 1

0

你最终的 RewriteRule 匹配 /500.html 所以它被重写了。我建议放弃添加一个额外的 RewriteCond 来简单地处理错误文档 URL,而不是添加更难阅读的负前瞻。

注意:现有条件已经看起来多余:

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]
于 2017-05-12T13:12:00.710 回答