【发布时间】:2009-08-03 08:52:58
【问题描述】:
Options +FollowSymLinks
RewriteEngine On
RewriteMap name2id txt:/path/to/map.txt
RewriteRule ^/mods/([^/]+)\.html$ /mod.php?id=${name2id:$1|0} [QSA,L]
第一次使用 rewriteMap 进行 URL 重写。我上面有一个代码,但如果我在浏览器中运行http://example.com/mysite/mods/abc.html,它会返回一个 404 页面。我已经将上面的代码放在我的虚拟主机文件中的 apache 配置中,我在一些论坛中读到 rewriteMap 只有在您可以访问 httpd.conf 和虚拟主机时才有效。 mod_rewrite 正在我的 Windows 机器上运行,因为我能够运行在我的 .htaccess 文件中定义的一些规则。
map.txt 包含
abc 123
def 456
ghi 789
【问题讨论】:
-
您是否确保 mod_rewrite 运行正常且 Apache 允许 .htaccess 文件?
-
是的,mod_rewrite 正在正常运行并允许 .htaccess 文件。我能够运行 htaccess 中定义的一些规则。
标签: apache mod-rewrite rewritemap