为什么RewriteRule不能在我的wamp上工作?

时间:2010-11-17 21:27:21

标签: .htaccess mod-rewrite wamp

htaccess的:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^/category/([0-9]+)/?$ /category.php?category_id=$1 [NC,L]

我把文件放入:
本地主机/ htaccess的

“category.php”页面位于:
本地主机/网站/ category.php

我试过了:
本地主机/网站/类别/ 4 /

但它说:

  

请求的网址   / website / public / category / 5 /不是   在这台服务器上找到。

BTW,我用另一个更简单的规则测试了.htaccess,它正在运行。

1 个答案:

答案 0 :(得分:2)

首先:

  

在.htaccess文件中使用重写引擎时,每个目录前缀(对于特定目录始终相同)会自动删除以进行模式匹配并自动添加替换完成后。

因此,如果是文档根目录,请从模式中删除前导/

RewriteRule ^category/([0-9]+)/?$ /category.php?question_id=$1 [NC,L]

其次,由于您的基本路径实际上是/website/而不是/,因此请使用RewriteBase更改基本路径:

RewriteBase /website/

请注意,此基本路径适用于此.htaccess文件中的所有规则。所以你可能只想改变特定的规则,例如:

RewriteRule ^website/category/([0-9]+)/?$ /website/category.php?question_id=$1 [NC,L]