首页 > 解决方案 > 如何修复 RewriteRule RewriteMap 语法

问题描述

我正在编写一个多站点平台,目前在我的 virtualhost/.htaccess 中使用以下内容

RewriteMap sitemap "txt:/home/fb/multimapper/map.txt"
RewriteCond %{HTTP_HOST} (.*) [NC]
RewriteRule (.*) /home/user/public_html/multimapper/sites/${sitemap:%1}/$1 [L]

我想将尾部斜杠 (/$1) 放在重写规则中,这样我就可以添加一个通用的 404 页面(在有人问之前:我不想使用多个 ErrorDocument 404 条目——这对于这个项目是不可行的)。

所以添加404.php ...

这个:${sitemap:%1}/$1 [L]

变成:${sitemap:%1/|404.php?catch=}$1 [L]

例如。

RewriteMap sitemap "txt:/home/fb/multimapper/map.txt"
RewriteCond %{HTTP_HOST} (.*) [NC]
RewriteRule (.*) /home/user/public_html/multimapper/sites/${sitemap:%1/|404.php?catch=}$1 [L]

问题是,${sitemap:%1/失败。即使我反斜杠${sitemap:%1\/

有谁知道我做错了什么?

非常感谢

标签: apachemod-rewriterewritemap

解决方案


推荐阅读