なぜ私の.htaccess WWWです。外部フォームはWWWなしで失敗する原因力。?
質問
ので、奇妙なクロスドメインAJAXの問題、WWWを利用していないときAJAXリクエストが失敗する原因、それはアドレスの問題か何かすることはできませんので、(要求と通信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]
これは素晴らしい作品。しかし、私は自分のフォームのaction属性で自分のフォームのURLを使用して、他のウェブマスターが彼らのウェブサイト上で私のいずれかの形式を投稿できるようにしたいです。これはいつも私の.htaccessは、ウェブマスターがWWWを追加したときのフォームにのみ提出されている変更しかし後に、働いていました。アクション値に。 WWWなし。フォームが送信されません。
どのように私は、これらの形態はまた、WWWなしで提出されていることを確認するために私の.htaccessファイルを変更する必要があります。?
解決
あなたが使用することができます。
RewriteCond %{REQUEST_METHOD} ^GET$
これは、彼らがそうであるようにPOSTリクエストを残し、唯一のGETリクエストを書き換えます。
他のヒント
301がリダイレクトするとき、ほとんどのブラウザでは、順方向データを掲示していない...だからあなたはあなたの代わりにアクションURLのGETとして、これらの要求が表示されます。
この動作は、技術的には非対応のですしかし、一般的に受け入れられているアプローチであると思われます。
(CF http://www.lassosoft.com/Documentation/TotW /index.lasso?9083 に、ます。http: //www.nkuttler.de/2008/11/09/mailman-and-301-redirects/ の。)
たぶんあなたのフォームのために307の一時的なリダイレクトを試してみてください? 307は、特に再POSTデータにブラウザに指示します。 http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirectionする