2014-12-31 1 views
3

url 매개 변수를 전달하려고하지만 매개 변수가 원하는 페이지로 전달되지 않습니다..htaccess 매개 변수가 대상 페이지로 전달되지 않습니다.

이전에 내 사이트는 cpanel에서 호스팅되었으며 아래 코드는 성공적으로 작동하지만 Varnish Cache 및 Apache가 서버에서 실행중인 Cent OS Webpanel이있는 VPS 서버로 사이트를 이동 한 후에 매개 변수는 대상 페이지/URL에 전달되지 않습니다.

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^download/(.*).html download.php?q=$1 [L,QSA] 

나는 URL을 실행하려면 : 재 작성 후 www.example.com/download/anything.html
및 대상 URL이 문제는 RewriteRule의이 작동하지만, 매개 변수가 전달되지 않습니다 www.example.com/download.php?q=anything
입니다.

하지만 아래 코드를 사용하면 매개 변수가 성공적으로 전달됩니다.

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^([a-zA-Z_0-9-]+)$ download.php?q=$1 [L,QSA] 

또는 코드

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*) download.php?q=$1 [L,QSA] 

나는 아래의 URL을 실행하고 아래

이 매개 변수가 페이지를 대상으로 전달됩니다 성공적으로
www.example.com/anything
대상 URL : www.example.com/download.php?q=anything


하지만, 다음 형식의 URL을 원합니다. www.example.com/download/*****.html * 별표 기호를 실제 검색어로 대체하십시오.

download/ (. *) .html과 같은 재 작성 URL에 정적 텍스트를 추가하면 매개 변수가 대상 페이지에 전달되지 않습니다.

감사

답변

2

대부분의 경우 새 서버는 기본적으로 사용 MultiViews 옵션이 있습니다. 그것을 사용하지 htaccess로의 상단에이 줄을 놓고 :

Options -MultiViews 

옵션 MultiViewsmod_rewrite 전에 실행 파일의 아파치 서버 경기 확장을하게 Apache's content negotiation module에 의해 사용된다. 따라서 /file은 URL에 포함될 수 있지만 /file.php이됩니다.

+1

답장을 보내 주셔서 감사합니다. 나를 위해 작동합니다. – AmarBunty

+0

환영합니다. 다행입니다. – anubhava