2012-12-16 4 views
0

나는 모든 .html 페이지를 get 매개 변수로 process.php로 리디렉션했습니다. 이제는 쿼리 URL을 정리하고 싶습니다..htaccess는 리디렉션 된 URL을 다시 작성합니다.

이렇게 리디렉션했습니다.

RewriteEngine on 
RewriteRule ^([^/]*)/(.*\.html) /Site/process.php?dir=$1&page=$2 [R=301,L] 

이렇게하면 URL이 제공됩니다.

http://localhost/Site/process.php?dir=Directory&page=page.html 

이 URL을 원래 URL로 청소하고 매개 변수를 가져올 수 있습니다.

http://localhost/Site/Directory/page.html 

나는 이것을 시도했다.

RewriteEngine on 
RewriteRule ^([^/]*)/(.*\.html) /Site/process.php?dir=$1&page=$2 [R=301,L] 
RewriteRule ^Site/$1/$2([^/.]+)/?$ [L] 

하지만 아무것도하지 않습니다.

가능한 모든 방법을 참조하십시오.

감사합니다.

편집

이 HTML 페이지가 실제로 페이지에서 바로 링크를 존재하지 않는, 내가 PHP와 그대로 htaccess로 유지 URL을 사용하여 데이터베이스에서 페이지를 만들려면 다음 링크를 처리하려면이 수행 할 수 있습니다.

+0

docroot는 어느 디렉토리입니까? 대지? 또는 위의 사이트? –

+0

루트 디렉토리가 사이트 –

+0

인 경우 원본 URL을 유지하고 리소스를 PHP 파일에 자동으로 매핑하면 동일한 작업을 수행 할 수 있습니다. 현재 "예쁜"URL을 "못생긴"리소스 주소로 리디렉션하고 있지만 이제는이 리소스 주소를 유지하면서 시작 지점으로 돌아가는 '예쁜'URL을 다시 표시하려고합니다. –

답변

1

"예쁜 URL"을 만들기 위해 검색 주소창에 "html"부분을 남겨두고 싶다면 [R] 플래그를 그대로두고 두 번째 규칙을 버리십시오. 리디렉션은 서버에서 발생하지만 브라우저에는 여전히 .html 개의 URL이 있습니다.

+1

그것의 작동. 'RewriteRule^([^ /] *)/(. * \. html) /Site/process.php?dir=$1&page=$2 [L]'고마워요. –

+0

의견을 보내 주셔서 감사합니다. 기쁘게 생각합니다. –

1

대답 부분 and still be able to post get parameter에 (스크립트 전체 원래의 쿼리 문자열을 전달) :

RewriteRule some.html some-other.php?%{QUERY_STRING} [L]

도움이 될 수 있습니다.

관련 문제