2012-04-05 5 views
2

지난 주 하루 내 전자 상거래 웹 사이트의 모든 양식이 작동을 멈췄습니다. 가장 중요한 점은 결제가 작동하지 않는다는 의미였습니다. 내 사이트는 XHTML과 PHP로 작성되었습니다. 사이트의 코드를 변경하지 않았으므로 내 웹 호스트가 내 호스팅 설정을 일부 변경했다고 가정했습니다. 그들은 어쨌든 꽤 절망적이며 아무 것도 변경하지 않았다고 말했고 내 사이트의 코드가 잘못되었다고 말했습니다.명백한 이유없이 URL 끝에 끝에 슬래시가 표시되었습니다.

현재 내 htaccess 파일에서 다음 코드를 사용하여 내 웹 페이지 주소로 PHP 확장명을 제거합니다. (필자는 인터넷에서이 코드를 복사하여 붙여 넣었지만 실제로는이 코드를 이해할 수 없습니다. 작동하려면 :

# Remove the need for php extension to web page addresses 
RewriteCond %{REQUEST_URI} ^(.*[^/])/?$ 
RewriteCond %{DOCUMENT_ROOT}%1.php -f 
RewriteRule .+ %1.php [QSA,L] 

오류를 해결 한 후에 명백한 이유로 모든 URL에 후행 슬래시가 추가되었습니다. 즉, POST를 통해 전송 된 양식 데이터가 후행 슬래시가없는 웹 페이지를 가리키는 양식으로 다음 페이지로 전달되지 않았습니다. 내 양식이 가리키는 주소에 단순히 슬래시를 추가하여 사이트를 임시로 수정했습니다.

하지만 내 웹 페이지를 어떻게 되찾았 으면 좋겠는지 모르겠지만이 솔루션은 만족스럽지 않습니다. 특히 나는 후행 슬래시가있는 페이지와없는 페이지가 완전히 다른 페이지로 간주된다는 것을 알고 있으므로 SEO 작업에 미치는 영향에 대해 우려하고 있습니다. 가장 이상한 점은 새 페이지를 만들면 이전 페이지와 동일하더라도 후행 슬래시가 없다는 것입니다.

이 변경 사항이 파란색으로 왜 발생했는지, 그리고이 문제를 해결할 수있는 이유가 누구인지 궁금합니다. 내 웹 호스팅은 현재 PHP 버전 5.2.17을 실행합니다.

+0

프로그래밍 방식으로 링크를 만들고 있습니까? 그렇다면 그 기능의 코드를 보여줄 수 있습니까? – konsolenfreddy

답변

0

아파치의 mod_dir 모듈이 작동하는 것처럼 들립니다. URL에 후행 슬래시를 추가하는 것은 해당 모듈의 주요 기능입니다. 을 .htaccess 파일에 넣고 작동하는지 확인할 수 있습니다. http://httpd.apache.org/docs/2.0/mod/mod_dir.html

RewriteOptions AllowNoSlash도 어딘가에 있습니다.

또는 RewriteLog "rewrite.log"RewriteLogLevel 3 지시어를 사용하면 재 작성에 대한 자세한 정보를 얻을 수 있습니다.

+0

도움 주셔서 감사합니다. 실제로 htaccess 파일에'DirectorySlash Off' 코드를 추가하면 트릭이 완료되었습니다! – sam8perry

관련 문제