2012-03-18 5 views
1

나는 클라이언트와 함께 일하고 있으며 최근에 웹 사이트를 Godaddy (ew!)에서 Pair Networks로 옮겼다. 나는 개인적으로 그리고 수년간 클라이언트를 위해 쌍을 사용하고 그들과 가진 중대한 경험이 있었다. 불행하게도이 문제는 공유 호스팅 계획 URL이므로 기술 지원 재 작성은 지원 계획에 포함되지 않습니다.실망 스럽다 .htaccess URL 재 작성 문제

어쨌든 우리가 루트 .htaccess의 재 작성 규칙을 통해 사이트를 이동하자마자 더 이상 작동하지 않습니다. .htaccess는 다음을 포함합니다 :

Apache에 따른 오류는 너무 많은 리디렉션으로 인해 오류 500이 표시됩니다. 내가 주석 경우이 :

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

그런 다음 기본 페이지로드 (index.php에이 것도 URL에 지정되지 않은 경우 기본으로 설정), 그러나 다른 페이지의 아무도로드 할 수 없습니다. 나는 수동의 결과로, 기능 사이트를 유지하기 위해 htaccess로 각 URL 형식에 대한 항목을 추가 했어 :

RewriteEngine On 
RewriteRule ^((images|styles|scripts|documents)/*.*)$ $1 [L]  
RewriteRule ^(admin/*)$ index.php/$1 [L] 
RewriteRule ^(admin/([a-zA-Z0-9]+))$ index.php/$1 [L] 
RewriteRule ^(admin/([a-zA-Z0-9]+)/([a-zA-Z0-9]+))$ index.php/$1 [L] 
RewriteRule ^(page/id/*)$ index.php/$1 [L] 
RewriteRule ^(page/submit)$ index.php/page/submit [L] 
RewriteRule ^([a-zA-Z0-9]+)$ index.php/page/id/$1 
RewriteCond $1 !^(index\.php|robots\.txt|favicon\.ico) 
#RewriteRule ^(.*)$ index.php/$1 [L] 

이 사이트는 CodeIgniter를 사용하기 때문에 예상 최종 다시 작성된 URL의 형식은 다음과 같습니다로드 http://server/index.php/page/id/examplehttp://server/example.

정확히 같은 CMS와 동일한 원본 .htaccess를 사용하여 페어 서버에 다른 클라이언트가 있었는데 약 6 년 동안 아무런 문제가 없었습니다. 그래서 갑자기 원인이 왜 문제가되는지 약간 깜짝 놀랐습니다. 그들은 둘 다 동일한 버전의 Apache와 PHP (각각 2.2.22와 5.3.8)를 사용합니다.

누구에게 무슨 문제가 있는지 아이디어가 있습니까? 나는 이처럼 모든 경로를 수동으로 정의하지 않아도되는 것을 선호한다.

답변

3

우리는 아무런 문제없이 몇 년 동안 아주 비슷한 규칙을 사용했습니다. 그 라인 바로 앞에 두 개의 RewriteCond 규칙이있어 파일이나 디렉토리가 아닌 요청인지 확인합니다.

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
+0

와우, 그게 전부입니다! 전에 시도한 적이 없다고 믿을 수는 없지만, 왜 내가 한 서버에서 작동했는지 생각해 보았지만 새로운 서버에서는 작동하지 않는 문제에 휘말린 것 같습니다. 제안 해 주셔서 감사합니다! – Kettch19