2017-02-12 4 views
1
나는 그것이 www.example.com/print/adder

htaccess로 깨끗한 URL을

처럼 나는 다음과 같은 .htacces 코드를 사용하고보고 싶은라는 이름의 URL www.example.com/print?id=adder
을 데

에 더러운 URL을 변환하지

RewriteEngine on 

# redirect all requests except only POST 
RewriteCond %{REQUEST_METHOD} !POST 
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.(?:php?)[\s?/] [NC] 
RewriteRule^/%1%2 [R=302,L,NE] 

RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+?)/?$ $1.php [L] 

RewriteRule ^print/([a-z]+) print.php?id=$1 [NC,L] 

그러나 여전히, 나는 www.example.com/print?id=adder과 같은 URL을 가지고 있습니다.

나는 wamp 3.0.6(Latest Version), PHP 7.0,10 & Apache 2.4.23입니다. 왜 나는이 문제에 직면 해있다. 코드가 작동하지 않는 이유는 무엇입니까?

+0

가/인쇄 폴더에 htaccess로 당신의 마지막 RewriteRule의 이상이를 넣어? – starkeen

+0

아니요 .htaccess가 루트 폴더에 있고 & print는 'print.php' 폴더가 아닙니다. .php 확장자를 숨겨서'print.php? id =' –

+0

대신에'print? id ='를 보았습니다. 그러나 여전히 URL을 가지고 있습니다 ... "- 당신은 또한 응용 프로그램의 URL (실제로 URL을 변경하는 것입니다) - 이미이 작업을 수행 한 것으로 보입니까? – MrWhite

답변

1

청소기 버전으로 URL을 리디렉션하려면,

RewriteCond %{THE_REQUEST} /print/?(?:\.php)?\?id=([^\s&]+) 
RewriteRule^/print/%1? [L,R] 
+0

코드가 URL을 변경하지만 해당 코드로 인해 내부 서버 오류 500이 발생합니다. –

+0

수정 된 코드가 @starkeen을 허용하지 않습니다. 그것은 깨끗한 URL로 변환하고 있지만 같은 500 오류, 내부 잘못된 구성 오류 –

+0

Akshay, 나는이 규칙 때문에 오류가 발생하지 않는다고 생각합니다. 규칙은 괜찮습니다. 내 서버에서 테스트했습니다. 오류 로그에서 500error에 대한 정보를 확인하십시오. – starkeen