我们在apache配置中设置了以下重写映射:
RewriteEngine on
RewriteMap modernmap txt:/etc/apache2/maps/salon/www.modernmap.com.txt
RewriteCond ${modernmap:$1|NOT_FOUND} !NOT_FOUND
RewriteRule ^(.+) ${modernmap:$1} [R=301,L]
该文本文件包含大约28,000个看起来像这样的条目:
/url1 http://www.example.com/url2
/url3?id=3 http://www.example.com/url9?id=33
文本文件中第一个24320行的重写工作,然后在第24320行之后的所有重写都失败。我已经删除了行24319,24320和24321的URL,以防它们出现问题并且问题仍然存在。
我在一个较小的子集上尝试过,问题只是移到另一条线上。
我已经尝试将文本文件转换为dbm并使用dbm,但同样的事情发生了。
我对下一步该怎么做感到茫然。
答案 0 :(得分:0)
谢谢Sumurai8。你指出我正确的方向。我们现在的工作原理如下:
RewriteEngine on
RewriteMap modernmap txt:/etc/apache2/maps/salon/modernmap.txt
RewriteCond %{REQUEST_URI} ^(.+)
RewriteCond ${modernmap:%1?%{QUERY_STRING}} ^(.+)
RewriteRule ^(.+) %1? [R=301,L]
RewriteCond ${modernmap:$1|NOT_FOUND} !NOT_FOUND
RewriteRule ^(.+) ${modernmap:$1} [R=301,L]