我有一個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