2013-03-05 2 views
0

너무 많은 코드를 사용하여 하위 폴더 URL을 리디렉션했지만 작동하지 않습니다.Htaccess가 내 도메인 하위 폴더에만 작동하지 않습니다.

From :: http://www.mydomain.com/doctor/searchresult.php?txtcity=Chennai&txtarea=Annanagar 

To :: http://www.mydomain.com/doctor/Chennai/Annanagar 

사용 된 htaccess로 코드가 방금 두 번째 나열된 URL에 최초의 URL을 리디렉션하려고하는 가정

RewriteRule ^doctor/([a-zA-Z0-9_-]+)/searchresult$ /doctor/searchresult.php?txtcity=$1&txtarea=$2 [R=301,L] 

RewriteRule ^([a-zA-Z0-9_-]+)/doctor/$ searchresult.php?txtcity=$1&txtarea=$2 

RewriteRule ^doctor/([a-zA-Z0-9_-]+) /doctor/searchDocResult.php?selFindDocCity=$1&txtFindDocAreaRzip=$2 [L] 
+0

무엇을하려고합니까? 첫 번째 규칙은 외부 리디렉션입니다 ('? txtcity' 변형이 공개됨). 규칙 참조는'$ 1'과'$ 2'와 일치하지만 각각 하나의 캡처 그룹 만 있습니다. 그리고이 상황에서'searchDocResult.php'는 무엇을합니까? –

답변

0

아래에서 언급이 내 서버에있는 작품이다.

주목할 점은 나열된 순서가 차이가 있다는 것입니다. txt 도시 내의 모든 txtarea가 아래 예제에서 먼저 나열되어야하는 가장 구체적인 필요성이 먼저 나열되어야합니다.

행운을 빌어 당신에게 어떻게 효과가 있는지 알려주세요.

팀은 .htaccess 작업을하기 위해

[email protected]

RewriteCond %{HTTP_HOST} ^(www\.)?mydomain.com [NC] 
RewriteCond %{REQUEST_URI} searchresult\.php 
RewriteCond %{QUERY_STRING} txtarea=Annanagar 
RewriteRule .* doctor/Chennai/Annanagar/? [R=301,L] 
RewriteCond %{HTTP_HOST} ^(www\.)?mydomain.com [NC] 
RewriteCond %{REQUEST_URI} searchresult\.php 
RewriteCond %{QUERY_STRING} txtcity=Chennai 
RewriteRule .* doctor/Chennai/? [R=301,L] 
0

, 당신은 두 가지를 할 필요가있다.

먼저 Apache 설정 파일에서 경로와 일치하는 <Directory> 지시문 내에서 AllowOverride을 사용하도록 설정합니다. 예를 들어 :

<Directory /> 
    Options None 
    AllowOverride All 
    Order deny, allow 
    Deny from all 
</Directory> 

이것은 .htaccess 파일에 지정된 것들로 "/"(웹 루트)에서 오버라이드 (override) 할 수 있습니다. AllowOverride 지시어에 대해서는 complete spec입니다.

두 번째로 올바른 지시문을 .htaccess 안에 넣어야합니다.

RewriteRule 지시문을 넣기 전까지는 RewriteCond 규칙이 서로 쌓여 있음을 기억하십시오. 이것이보다 복잡한 규칙을 수립 할 수있는 방법입니다. 이 here에 대한 유용한 가이드를 찾을 수 있습니다.

관련 문제