2014-03-02 2 views
0

이 질문에 답을 얻은 적이 있지만 Google 검색에 일반 스타일의 mod_rewrite URL 스타일 지정 질문으로 인해 답변을 검색하는 방법이 확실하지 않습니다. 기본 URL에 php 매개 변수를 추가하는 mod_rewrite

나는이 사이트는 두 가지 주요 페이지와 단일 페이지 응용 프로그램으로 구성하고 사이트가 html로 표시됩니다

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301] 

www가에 www가 아닌 ​​쿼리를 리디렉션에 대한 다음과 같은 표준 규칙을 사용해 htaccess로 파일이 url 매개 변수를 기반으로합니다. 1면은 사과이고 2면은 배입니다. 사용자가 website.com을 검색하면 첫 번째 규칙이 호출되고 www.website.com으로 리디렉션됩니다. 그런 다음 매개 변수를 추가하여 www.website.com/?p=apples가되도록합니다. 원래의 검색에는? p = 사과 또는? p = 배가 포함되어 있지 않았기 때문에 매개 변수를 추가해야합니다.

여러 솔루션을 시도했지만 모두 리디렉션 루프로 연결되는 것으로 보입니다. 이 예기치 않게 예기치 않게 리디렉션 루프가 발생합니다.

RewriteCond %{THE_REQUEST} !^.*\?p=apples.*$ 
RewriteCond %{THE_REQUEST} !^.*\?p=pears.*$ 
RewriteRule .* http://www.website.com/?p=apples [R] # also how can this be generalized so it's not domain name specific 
+0

.htaccess에 캐시를 추가 한 후 캐시를 지우셨습니까? .htaccess는 다른 디렉토리에 있습니까? – Prix

답변

0

여기가 맞는지 확인하십시오. 그것을 www로 리다이렉트하도록 합치고 쿼리 문자열이 비어있는 경우 ?p=apples으로 리다이렉트하면이 코드가 도움이 될 것입니다.

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{QUERY_STRING} !p=(.+)$ [NC] 
RewriteRule ^$ http://www.%{HTTP_HOST}/?p=apples [R=301,L] 

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L,QSA] 
+0

덕분에 덕분에 일했습니다. – user3015797

관련 문제