Почему мой .htaccess www.сила, вызывающая сбой внешних форм без www.?

StackOverflow https://stackoverflow.com/questions/563148

Вопрос

Из-за странных междоменных проблем AJAX, приводящих к сбою запросов AJAX, если не используется www. (обработчик PHP, взаимодействующий с запросом, указан в относительном пути, поэтому это не может быть проблема с адресом или что-то в этом роде - вот в чем этот вопрос. примерно хотя), я заставил www.используя .htaccess:

#enable rewrite engine and set options
Options +FollowSymLinks
RewriteEngine on

#only www.
RewriteCond %{HTTP_HOST} !^www.domain.com$
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301]

Это прекрасно работает.Однако я хочу разрешить другим веб-мастерам публиковать одну из моих форм на своем веб-сайте, используя URL-адрес моей формы в атрибуте действия своей формы.Это всегда работало, однако после моего изменения .htaccess формы отправляются только тогда, когда веб-мастер добавляет www.к значению действия.Без www.форма не будет отправлена.

Как мне изменить файл .htaccess, чтобы эти формы также отправлялись без www.?

Это было полезно?

Решение

Вы могли бы использовать

RewriteCond %{REQUEST_METHOD} ^GET$

который перезапишет только запросы GET, оставив запросы POST такими, какие они есть.

Другие советы

Большинство браузеров не пересылают данные POST при перенаправлении 301...Таким образом, вместо этого вы увидите эти запросы как GET URL-адреса вашего действия.

Такое поведение технически несовместимо. но, похоже, это общепринятый подход.

(см. http://www.lassosoft.com/Documentation/TotW/index.lasso?9083, http://www.nkuttler.de/2008/11/09/mailman-and-301-redirects/.)

Может быть, попробуйте 307 временных редиректов для своих форм?307 специально предписывает браузеру повторно отправить данные. http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top