2017-12-26 20 views
1

.htaccess를 처음 사용하기 때문에 친숙한 URL (또는 매우 친숙한 SEO 친화적 인 URL)을 만들려고합니다. .htaccess에서 다음 작업을 수행했습니다.다시 작성한 후 이전 URL로 웹 사이트를 탐색하지 못하게합니다.

- 모든 파일에서 .php 확장명을 제거하십시오.
- 다음과 같은 제품 상세 페이지를 다시 작성 : 나는 URL 표시 줄로 이동하여 .PHP 확장자를 가진 파일 이름을 입력 할 때

RewriteRule ^product-details/([a-zA-z0-9_-]+)/([0-9]+)$ product-details.php?title=$1&id=$2 [L]

그러나, 그것은 여전히 ​​작동합니다. 사용자가 404.php 페이지로 리디렉션하도록합니다. 또한 제품 세부 정보 페이지에서 이전 URL 형식을 입력하고 작동합니다.

일러스트 :

index => index.php (Works)
product-details/chair/1205 => product-details.php?title=chair&id=1205 (Works)
어떻게이 문제를 방지하기 위해? PHP 또는 .htaccess를 사용해야합니까? 그렇다면 .htaccess 솔루션은 무엇입니까? 고마워요!

+0

PHP 자체에서 이전 URL을 새로운 URL로 간단하게 리디렉션 할 수 있습니까? 404로 보내야하는 이유는 무엇입니까? –

+0

@AmitGupta .php 확장명 및 형식을 정확히 숨기려고하므로 –

+0

예 이전 페이지를 새로운 페이지로 리디렉션하면 URL 확장자가 나타나지 않습니다. –

답변

1

RewriteRule 이후에는 이전 URL이 자동으로 새 URL로 리디렉션됩니다. 사용자가 product-details.php?title=chair&id=1205을 열면 자동으로 product-details/chair/1205

으로 리디렉션됩니다. 따라서 누군가 .php 확장 프로그램 URL을 열려고해도이 URL은 작동하지 않습니다.

그리고 이전 URL을 404 page (으)로 보내지 마십시오. 사용자에게 잘못된 인상을주게되고 SEO에 좋지 않습니다.

+0

XAMPP localhost에서 시도했지만 index.php 등을 계속 표시합니다. –

+0

index.php에 추가 한 RewriteRule은 무엇입니까? –

+0

'RewriteRule^([^ \.] +) $ $ 1.php [NC]'이고 제품 세부 정보에는 작동하지 않습니다 –