我的重写地图不匹配,我遇到了问题:
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'是保留关键字)。没有快乐。它似乎也不是权限问题。
仅供参考,我正在使用Helicontech的ISAPIRewrite,因为我在IIS6上。
答案 0 :(得分:0)
三点建议:
答案 1 :(得分:0)
如果map.txt与.htaccess位于同一文件夹中,请尝试以下定义:
RewriteMap map txt:map.txt [NC]
如果它位于其他位置,请尝试使用完全合格的路径。
如果您尚未使用,请考虑更新到ISAPI_Rewrite的最新版本。
答案 2 :(得分:0)
我遇到了同样的问题,并用“”修复,请尝试:
RewriteMap map "txt:rewritemaps\map.txt" [NC]
RewriteCond ${map:$1|NOT_FOUND} !NOT_FOUND [NC]
RewriteRule "^(.+)$" "${map:$1}" [NC, R=301]