나는 PHP 웹 사이트를 가지고 있으며 mod_rewrite
을 사용하여 모든 URL 요청을 리디렉션합니다.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과 페이지가 그에게 표시됩니다 나는 product.php
스크립트를 가지고 있고 나는 그것을위한 규칙이 가정하자.
그러나 사용자에게 내가 제공 한 규칙만으로 내 사이트에 액세스하도록하고 싶습니다. 즉, 사용자가 http:/www.mysite.com/something
을 입력하거나 http:/www.mysite.com/product.php?pid=1
과 같은 올바른 URL을 입력하면 404 오류 페이지로 리디렉션되어야합니다. 이 스크립트는 맞춤 스크립트 또는 아파치의 기본 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 플래그가 있더라도 모든 URL을이 페이지로 리디렉션합니다. –
이상하게 들리면 대개 완벽하게 작동합니다. RewriteRules의 전체 세트를 보여줄 수 있습니까? –
내 대답을 편집했습니다. –