0
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
4

2 回答 2

1
于 2009-08-03T08:56:58.050 回答
0

如果您使用的是 RewriteBase,请尝试删除规则中的初始斜杠:

RewriteRule ^mods/([^/]+)\.html$ /mod.php?id=${name2id:$1|0} [QSA,L]
于 2009-08-03T09:29:48.190 回答