#php #.htaccess
#php #.htaccess
Вопрос:
Я новичок в php scripting и пытаюсь создать контактную форму
это форма, которая у меня есть (только важная часть)
<form data-name="Get In Touch Form" name="wf-form-Get-In-Touch-Form" action="contactform.php" </form>
у меня есть условия перезаписи следующим образом
#remove html?
#RewriteEngine on
#RewriteCond %{THE_REQUEST} /([^.] ).html [NC]
#RewriteRule ^ /%1 [NC,L,R]
#RewriteCond %{REQUEST_FILENAME}.html -f
#RewriteRule ^ %{REQUEST_URI}.html [NC,L]
#remove php?
#RewriteEngine on
#RewriteCond %{THE_REQUEST} /([^.] ).php [NC]
#RewriteRule ^ /%1 [NC,L,R]
#RewriteCond %{REQUEST_FILENAME}.php -f
#RewriteRule ^ %{REQUEST_URI}.php [NC,L]
в настоящее время условие перезаписи отключено, и форма работает, но если я включу условия, она не будет работать
, как я могу исправить эту проблему?
Спасибо
Комментарии:
1. Что вы подразумеваете под «это не сработает»? Как это связано с вашей формой?
Ответ №1:
RewriteCond %{THE_REQUEST} /([^.] ).php [NC]
RewriteRule ^ /%1 [NC,L,R]
Здесь вы внешне переписываете все запросы, которые заканчиваются .php
на версию без суффикса, и браузер будет следовать этому перенаправлению, делая запрос GET, что означает, что на этом этапе вы теряете свои данные POST.
Ваша форма должна напрямую указывать на action="contactform"
вместо action="contactform.php"
, тогда этого не произойдет в первую очередь.
(Вы также можете добавить исключение к этому, используя вторую RewriteCond, которая проверяет, не был ли метод запроса отправлен первым, чтобы это перенаправление не происходило в таких случаях.)