簡體   English   中英

rewritemap不匹配

[英]rewritemap not matching

我的rewritemap遇到問題時遇到了麻煩:

RewriteMap map txt:rewritemaps\map.txt  [NC]
RewriteCond ${map:$1|NOT_FOUND} !NOT_FOUND [NC]
RewriteRule ^(.+)$  ${map:$1}   [NC, R=301]

該地圖大約有4,500個條目,其中包括:

arctic  /Destinations/Polar-Regions/The-Arctic.aspx

我的RewriteLog,設置為9級,記錄:

init rewrite engine with requested uri /arctic
Htaccess process request C:\Program Files\ISAPI Rewrite\httpd.conf
Htaccess process request C:\Websites\Path\WebSite\.htaccess
[..]
applying pattern '^(.+)$' to uri 'arctic'
map lookup FAILED: map=map[txt] key=arctic
RewriteCond: input='NOT_FOUND' pattern='NOT_FOUND' =>

它適用於不在地圖中的頁面-例如/Contact-Us.aspx,但不適用於應匹配的內容(例如北極)。 我試過更改[NC]標志的位置,刪除RewriteCond並重命名地圖文件(以防萬一'map'是保留關鍵字)。 不開心 它似乎也不是權限問題。

僅供參考,就像在IIS6上一樣,我正在使用Helicontech的ISAPIRewrite。

三點建議:

  1. 嘗試使用正斜杠(/)作為目錄分隔符。
  2. 如果這樣不起作用,請嘗試使用完全限定的路徑。
  3. 不使用RewriteCond即可嘗試。

如果map.txt與.htaccess位於同一文件夾中,請嘗試以下定義:

RewriteMap map txt:map.txt  [NC]

如果在其他位置,請嘗試使用完全限定的路徑。

另外,如果尚未安裝,請考慮更新到最新版本的ISAPI_Rewrite。

我遇到了同樣的問題,並使用“”修復了該問題,請嘗試:

RewriteMap map "txt:rewritemaps\map.txt"  [NC]
RewriteCond ${map:$1|NOT_FOUND} !NOT_FOUND [NC]
RewriteRule "^(.+)$"  "${map:$1}"   [NC, R=301]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM