1

奇妙なクロスドメイン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 を使用して、他の Web マスターが自分のフォームの 1 つを自分の Web サイトに投稿できるようにしたいと考えています。これは常に機能しましたが、私の .htaccess の変更後、ウェブマスターが www を追加したときにのみフォームが送信されます。アクション値に。wwwなし。フォームは送信されません。

これらのフォームも www. なしで送信されるようにするには、.htaccess ファイルをどのように変更すればよいですか?

4

2 に答える 2

2

301 Redirected の場合、ほとんどのブラウザは POST されたデータを転送しません。そのため、これらのリクエストは代わりにアクション URL の GET として表示されます。

この動作は技術的に準拠していませんが、一般的に受け入れられているアプローチのようです。

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

フォームに 307 一時リダイレクトを試してみませんか? 307 は、ブラウザにデータを再送信するように明確に指示します。http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection

于 2009-02-18T22:56:58.327 に答える
2

あなたが使用することができます

RewriteCond %{REQUEST_METHOD} ^GET$

POST リクエストはそのままにして、GET リクエストのみを書き換えます。

于 2009-02-19T00:15:45.860 に答える