私の要件は、書き換えマップファイルにurlが存在するかどうかをチェックすることです。存在していない場合は、ステータスコード404uriがrewritemapに存在するかどうかを確認する他のgoto 404ページですか?
でカスタム404ページが表示されるはずですもともとこのコードは目的を果たし:
RewriteMap plp-map dbm:${http.server.install.base}/dynamicmaps/plp-map
RewriteCond %{REQUEST_URI} ^/en/home/categories/.*
RewriteRule ^(.*) ${plp-map:$1|/content/mysite/en_ca/home/errors/404.html} [PT,QSA]
それは/invalid.htmlのカスタム404ページをロードしました。しかし、ステータスは200でした。次に、mapに存在しない場合は、goto ErrorDocumentとしてルールを作成しました。そうでなければリダイレクトします。以下のように:
RewriteCond %{REQUEST_URI} ^/en/home/categories/.*
RewriteMap plp-map dbm:${http.server.install.base}/dynamicmaps/plp-map
RewriteCond ${plp-map:$1} =""
RewriteRule .? - [S=2]
RewriteCond %{REQUEST_URI} ^/en/home/categories/.*
RewriteRule ^(.*) ${plp-map:$1} [PT,QSA]
RewriteRule .? - [S=1]
RewriteRule ^(.*)$ - [L,R=404]
ErrorDocument 404 /content/homedepot_ca/en_ca/home/errors/404.html
今、このルールは、三行目のRewriteCond $ {PLP-マップ:$ 1}で失敗しているエラー
で "" =map lookup FAILED: map=plp-map[dbm] key=
ない$ 1は常にURLを返すべきでしょうか?どういうわけか私は、URLを条件チェックの地図エントリに渡すための部分を欠いています。これを修正するには?また、私の問題のためのより良い解決策がありますか?
あー...これは私の問題を解決し、などのルールを簡素化よくどうも。 –