mod_rewrite 映射不起作用

mod_rewrite 映射不起作用

我正在尝试构建一个简单的 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
)

相关内容