Pergunta

.

Por causa de problemas AJAX de domínio cruzado estranhos, causando solicitações de AJAX a falhar quando não estiver usando www (o manipulador PHP se comunicar com o pedido é dado em um caminho relativo, por isso não pode ser um problema endereço ou alguma coisa - isso é o que esta pergunta é sobre embora), eu ter forçado www. usando .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]

Isso funciona muito bem. No entanto, eu quero permitir que outros webmasters para um cargo de meus formulários em seu site, usando o meu formulário de URL no atributo action da sua forma. Isso sempre funcionou, porém após minha mudança .htaccess as formas são apenas apresentado quando o webmaster adiciona www. para o valor da ação. Sem www. o formulário não vai ser submetido.

Como eu deveria mudar meu arquivo .htaccess para se certificar de que estas formas também são submetidos sem www.?

Foi útil?

Solução

Você pode usar

RewriteCond %{REQUEST_METHOD} ^GET$

que irá reescrever só recebem pedidos, deixando solicitações POST como elas são.

Outras dicas

A maioria dos navegadores não para a frente POSTed dados quando 301 Redirected ... Então, você vai ver esses pedidos como um GET do seu url ação em seu lugar.

Este comportamento é tecnicamente não conforme mas parece ser a abordagem comumente aceita.

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

Talvez tente 307 temporários Redirects para as suas formas? 307 especificamente instrui o navegador para re-lançar os dados. http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top