我有一个php网站,我使用mod_rewrite
来重定向所有的URL请求。假设我有一个product.php
剧本,我有这方面的规则:使用mod_rewrite隐藏实际的URL
RewriteRule ^product/([0-9]+).*/?$ product.php?pid=$1 [L,NC]
RewriteRule ^category/([0-9]+).*/?$ category.php?cid=$1 [L,NC]
到目前为止,一切进展顺利,并在用户类型:http://www.mysite.com/product/1
与http:/www.mysite.com/product.php?pid=1
实际URL页面将显示给他。
但是,我想强制用户访问我的网站,完全从我提供的规则。我的意思是当用户键入http:/www.mysite.com/something
或者甚至像http:/www.mysite.com/product.php?pid=1
这样的正确URL时,他应该被重定向到404错误页面。这可以是一个自定义脚本或apache的默认404页面。
这可能吗?
编辑:根据要求,我张贴我的整个.htaccess文件:
Options +FollowSymLinks
Options +Indexes
RewriteEngine on
RewriteBase /websitename
RewriteRule ^product/([0-9]+).*/?$ product.php?pid=$1 [L,NC]
RewriteRule ^category/([0-9]+).*/?$ category.php?cid=$1 [L,NC]
我以前试过。它只是将所有网址重定向到此页面,即使我的所有规则都有L标志。 – 2012-03-05 13:19:54
这很奇怪,它通常适合我。你能告诉我们整套RewriteRules吗? – 2012-03-05 13:23:36
我编辑了我的答案。 – 2012-03-05 13:33:25