2014-12-18 2 views
-1

페이지에 간단한 문의 양식이 몇 개 있습니다. 이 .htaccess 파일을 추가 할 때까지 모두 잘 작동했습니다 (양식이 이메일의 이메일로 발송되었습니다).PHP 양식 및 .htaccess 충돌

.htaccess 파일을 포함하면서 PHP 양식을 처리 할 수있는 방법이 있습니까? (사이트가 실제로 멋있게 보이기 때문에)

미리 감사드립니다.

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

## hide .php extension 
# To externally redirect /dir/foo.php to /dir/foo 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1 [R,L,NC] 

## To internally redirect /dir/foo to /dir/foo.php 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule^%{REQUEST_URI}.php [L] 

FORM 코드 : 외부 리디렉션이 새로운 URL에 POST 데이터를 전송하지 않습니다 때문에

<?php 
$first_name = $_POST['first_name']; 
$last_name = $_POST['last_name']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 
$message = $_POST['message']; 

$from = 'From: Contact Page'; 
$to = '[email protected]'; 
$subject = 'Contact Page'; 
$human = $_POST['human']; 

$body = "From: $first_name\n $last_name\n E-Mail: $email\n Phone: $phone\n Message:\n $message"; 

if ($_POST['submit'] && $human == '4') { 

    if (mail ($to, $subject, $body, $from)) { 
     header('Location: http://www.xxxxxx.com/ThankYou.php'); 
     exit(); 
    } else { 
     header('Location: http://www.xxxxxx.com/error.php'); 
    } 
} else if ($_POST['submit'] && $human != '4') { 
    header('Location: http://www.xxxxxx.com/error.php');; 
} 
?> 
+0

에 내 옛날 대답 한 냄새 :이 코드를 사용? 왜 당신이 무엇을 모른 채 서버 설정을 추가합니까? – donald123

+0

양식 코드를 추가 할 수 있습니까? – versalle88

+0

양식이 게시됩니다. 나는 내가하고 싶은 것을 알고 있기 때문에 그것을 추가했다.) .. (URL을 멋지게 만들었다.) 나는 항상 내가 무엇을하고 있는지를 안다면 결코 아무것도하지 않을 것이다.) – newneub

답변

0

는 먼저 리디렉션 규칙에서 POST 방법을 사용하지 않도록 설정해야합니다.

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

## hide .php extension 
# To externally redirect /dir/foo.php to /dir/foo 
RewriteCond %{REQUEST_METHOD} !POST 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1 [R=302,L,NE] 

## To internally redirect /dir/foo to /dir/foo.php 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule^%{REQUEST_URI}.php [L] 

BTW이 전체 .htaccess 양식의 작용 무엇 SO :

+0

이것은 분명히있을 수있다. 당신의 스크립트 :). 그렇다면 처음으로 게시 해 주셔서 감사 드리며 업데이트에 감사드립니다. 너 나를 대단히 도와 줬어. – newneub

+0

문제가 해결되면 내 대답의 왼쪽 상단에있는 눈금을 클릭하여 답변을 수락 한 것으로 표시 할 수 있습니다. – anubhava

+0

이메일이 전송되지 않는 이유가 있습니까? – newneub