2010-12-10 3 views
0

나는 잘 작동하는 데 사용되는 연락처가있는 웹 사이트가 있습니다.Mod_rewrite가 작동하지 않는 연락처 양식을 발생했습니다.

이 mod_rewrite 규칙을 사용하여 양식이 작동하지 않도록 제한했습니다.

# If client requested does not exist as a directory or a file 
# then add .php to the actual filename 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ $1.php [L] 

# Gets rid of the file extensions in the address bar 
# If client request header contains php file extension 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.php\ HTTP 
# externally redirect to extensionless URI 
RewriteRule ^([^.]+)\.php$ http://cacrochester.com/$1 [R=301,L] 
이 페이지 http://cacrochester/Contact-Us.php에 문의 양식에 영향을 미치지 않습니다,하지만 여전히 주소 표시 줄에 확장을 제거 할 수 있도록

가 어떻게 이것을 수정할 수 있습니다?

+0

정확히 무엇이 문제입니까? 스크립트가 양식 데이터를 가져 오지 못합니까? 스크립트를 찾을 수 없습니까? – Kissaki

+0

이 mod 규칙을 주석 처리하고 양식의 submit을 클릭하면 오류 메시지가 표시됩니다. 질문에있는 규칙의 주석을 제거한 다음 양식의 제출 버튼을 클릭하면 페이지가 새로 고쳐지고 오류 메시지가 표시되지 않는 것 같습니다. – Catfish

+0

301 perm-redirect가 (일부/대부분?) 브라우저의 양식 데이터를 삭제할 것이라고 상상할 수 있습니다. 다른 브라우저를 확인하거나 브라우저가 최종 url의 요청과 함께 양식 데이터를 보내는 지 확인하십시오. – Kissaki

답변

0

.php없이 해당 양식의 URL을 가리 키도록하십시오.

http://www.cacrochester.com/Contact-Us.php 대신 http://www.cacrochester.com/Contact-Us을 가리 킵니다.

+0

양식이 $ _SERVER [ 'PHP_SELF'] – Catfish

+0

그런 다음 .php를 다시 추가하기 때문에'$ _SERVER [ 'PHP_SELF']'를 사용하지 마십시오. 아니면 str을 통해'substr ($ _ SERVER [ 'PHP_SELF'], 0, strrchr ($ _ SERVER [ 'PHP_SELF'], '.'))'와 같이 놓으십시오. – Kissaki

+0

오, 나는 그것이 합리적이라고 생각한다. .php를 추가하는 페이지 자체를 제출하는 것을 몰랐습니다. 어디서 코드를 사용하는지 설명 할 수 있습니까? 마찬가지로 양식을 제출할 때 $ _SERVER 변수 나 뭔가에 넣으시겠습니까? – Catfish

관련 문제