URL重写映射apache

时间:2012-08-14 23:17:11

标签: apache rewritemap

我是编程新手,遇到了以下问题。请劝告我。

我的网站上有www.mysite.com/products.php?cid=3这样的网址 其中参数cid(此处为3)的值是从后端数据库生成的,可以是1到3之间的数字。

我希望Apache重写URL,以便:

www.mysite.com/nike会重定向到www.mysite.com/products.php?cid=1

www.mysite.com/reebok会重定向到www.mysite.com/products.php?cid=2

www.mysite.com/kswiss会重定向到www.mysite.com/products.php?cid=3

等...

我在根目录下有一个名为 category.txt 的文本文件,其中包含以下内容:

nike 1 
reebok 2 
kwiss 3 

和.htaccess

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase / 
rewritemap categorymap txt:/image/categorymap.txt 
RewriteRule ^(.*) /products.php?cid=${categorymap:$1|NOTFOUND} [PT] 
</IfModule> 

但这不起作用,请告诉我,

1 个答案:

答案 0 :(得分:0)

RewriteMap directive只能在服务器或vhost配置中使用。你需要在那里定义它。如果您无法访问服务器或vhost配置,那么您只需将所有这些枚举为单独的重写指令,如:

RewriteRule ^nike$ /products.php?cid=1 [L,QSA]
RewriteRule ^reebok$ /products.php?cid=2 [L,QSA]
RewriteRule ^kswiss$ /products.php?cid=3 [L,QSA]