1

我们的 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 并且发生了同样的事情。

我有点不知道下一步该做什么。

4

1 回答 1

1

谢谢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]
于 2014-10-21T13:51:53.033 回答