我正在尝试构建一个简单的 mod_rewrite 映射,将类别名称转换为 id,如下所示:../category/electronics -> category.php?cat=1
地图放在 www 文件夹内。代码会忽略该地图,就像它不存在一样
这是我重写的代码,有什么错误?
已编辑:catmap.txt 的路径,现在可正常工作
<VirtualHost *:80>
DocumentRoot "${path}/www"
....
RewriteMap cat2id txt:${path}/www/catmap.txt
RewriteEngine On
RewriteOptions Inherit
RewriteLogLevel 3
RewriteRule ^/beta/category/(.*) /beta/category.php?cat={cat2id:$1}
</VirtualHost>
答案1
RewriteRule 应该是:
RewriteRule ^/beta/category/(.*) /beta/category.php?cat=${cat2id:$1}
/var/www/beta/category.php
我创建了包含以下内容的文件:
<?php print_r($_GET); ?>
这就是我得到的:
$ curl 'http://localhost/beta/category/electronics'
Array
(
[cat] => 1
)