我是编程新手,遇到了以下问题。请劝告我。
我的网站上有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>
但这不起作用,请告诉我,
答案 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]