2013-05-03 4 views
-1

최근 내 호스팅 제공 업체가 아파치 시스템을 2.4.4로 업데이트했습니다. 에서, 그래서 지금은 쿼리 문자열을 강제로 사이트를 실행시켜야하기 때문에 내 표현 엔진 사이트가 중단되는 원인이되었습니다.PATH_INFO .htaccess 규칙 사용이 중단되었습니다.

RewriteRule ^(.*)$ /index.php?/$1 [L] 

내가 당신을 쉽게 단지 내 htaccess로 규칙에 선을 업데이트하여이 문제를 해결할 수 이해하는 바로는

은 ... 불행하게도 이에 대한 수정이처럼 간단하지 않았다.

내 웹 사이트는 사용자 정의 표현식 엔진 플러그인을 사용하여 세계 어느 지역에서 IP 대 모듈을 사용하는지 감지합니다. 기본적으로 발생하는 현상은 미국 출신 인 경우 미국 콘텐츠가 & 인 사이트를 볼 수 있습니다. 다른 곳에서는 URI의 첫 번째 부분에 "international"을 추가합니다. URI의 첫 번째 부분에는 첫 번째 부분을 기반으로 한 국제 콘텐츠가 표시됩니다. 우리의 URI

http://www.example.com/segment_1/segment_2/segment_2 = US SITE 

http://www.example.com/international/segment_1/segment_2/segment_2 = INTERNATIONAL SITE 

내가 그것을 국제 사이트를 나누기 index.php를 위해 RewriteRule의 해당 쿼리 문자열을 추가하려고하고 내가 왜 확실하지 않다 예를

합니다.

RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 
RewriteRule /international/(.*)$ /index.php/$1 [L] 

"?" RewriteRule ^(.*)$ /index.php?/$1 [L]은 미국 사이트를 수정하지만 국제 페이지를 찾을 수 없다는 국제 사이트를 위반합니다.

"?" RewriteRule /international/(.*)$ /index.php?/$1 [L]은 국제 사이트를 수정하지만 미국 사이트는 쿼리 문자열이 필요하기 때문에 작동하지 않습니다.

둘 다 추가하면 둘 다 작동하지 않습니다.

분명히이 문제를 극복하기 위해 .htaccess 내에 뭔가가 누락되어 있지만 올바른 구문을 생성하지 못하는 것 같습니다.

아이디어가 있으십니까?

답변

1

내가 여기 추측을거야, 그래서 완전히 쓸모가 될 수 ...

RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 
RewriteRule /international/(.*)$ /index.php/$1 [L] 

당신이 다음? URL이의 index.php에 추가 재 작성에 추가 같은 문제가 보인다 다시 국제적인 - 따라서 당신이 "?" 둘 다에, 그것은 재 작성을 죽인다.

그래서 처음으로 다시 작성하려면 국제어를 제외하고 두 번째 항목은 국제에만 적용해야합니다.

RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(international) 
RewriteRule ^(.*)$ /index.php?/$1 [L] 
RewriteCond %{REQUEST_URI} (international) 
RewriteRule /international/(.*)$ /index.php?/$1 [L] 

두 번째 부분에 대해 3 가지 초기 조건을 반복해야 할 수도 있습니다. UPDATE

그것이 (오른쪽 방향으로 날 가리키는 주셔서 감사합니다 - 누가 복음) 결국 작업있어이 almpost 근무

RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(international) 
RewriteRule ^(.*)$ /index.php?/$1 [L] 

RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} (international) 
RewriteRule ^(.*)$ /index.php/$1 [L] 
RewriteRule /international/(.*)$ /index.php?/$1 [L] 
+0

, 그것은의 definetly 저를 올바른 방향을 towrads 지적 감사합니다 순전히. 국제 색인 인 경우 색인 바로 다음에'RewriteRule^(. *) $ /index.php/$1 [L]'을 추가해야했습니다.PHP는 여전히 사용할 수 있어야합니다 + 나는 두 번째 부분뿐만 아니라 3 초기 조건을 반복해야했습니다. 고마워요. 피터 루이스. –