2009-08-05 3 views
0

.htaccess로 수행 할 수 있는지 확실하지 않은 작업을 수행하려고합니다.htaccess 마스크 동적 URL을 사용하는 동적 URL

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

위대한 작품 : 내가 한

우선 다음 코드를 사용하여 .PHP 확장자를 숨기입니다.

지금 내가 할 노력하고있어 및 알아낼 수없는 것은 다음과 같다 :

때 브라우저의 주소 표시 줄에 사용자 유형 "mywebsite.com/products?id=12345"I ID에 따라 서버가 올바른 제품 페이지를 제공하지만 제품 ID와 상관없이 검색 주소창에 "mywebsite.com/product"로 표시하고 싶습니다.

이 작업을 수행 할 수 있습니까? 그렇다면 어떻게?

감사합니다.

+0

mywebsite.com/product로 리디렉션 하시겠습니까? 또는/products를 사용할 수 있기를 원하십니까? id = 12345? – rpjohnst

+0

리디렉션하고 싶지 않습니다. 서버가 "/ products? id = 12345"로 페이지를 제공하지만 제품 주소와 상관없이 브라우저의 주소 표시 줄에 "/ products"로 URL을 표시하고 싶습니다. – Enkay

답변

0

정말 깨끗한 방법으로는 불가능합니다. 주소 표시 줄을 변경하려면 실제 HTTP 리디렉션을 보내야합니다. 즉, 리디렉션 된 항목이 있으면 브라우저에서 새로운 요청을 받게되므로 두 번째 요청에서 더 이상 제품 ID를 갖지 않게됩니다.

  • 쿠키

이 두 나쁜 아이디어이다에서 서버 상태

  • 저장 제품을합니다

    당신이 주위에 얻을 수있는 두 가지 방법이 있습니다.

    어쨌든 왜 이것을하고 싶습니까? 사용자가 귀하의 제품을 책갈피에 추가 할 수 없도록 하시겠습니까? 그것은 꽤 사용자 적대적인 것처럼 보인다.

  • +0

    사실 저는 제 질문을하기 위해 문제를 단순화했습니다. 제품 페이지는 현재 재고가있는 옵션의 조합 만 보여주는 동적 필터링 시스템을 사용합니다. 결과 페이지는 "products? color = red & category = 456"과 유사합니다. 옵션의 조합이 더 이상 재고가없는 경우 사용자가 특정 검색을 북마크 할 수 없도록하려면 빈 결과 페이지가 표시됩니다. htaccess로이 작업을 수행 할 방법이 없다면 PHP 세션을 사용하여 URL 변수 대신 고객 선택을 숨기도록 필터링 시스템을 변경할 수 있습니다. – Enkay

    0

    나는 Ajax와 세션을 사용하여 필터링 과정을 사용자에게 원활하게했다. 나는 htacess 파일로 할 수 없었던 것을하려고 생각했다. 어쨌든 고마워!