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,它正在运行。
答案 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]