2009-02-18 60 views
1

由於奇怪的跨域AJAX問題,當不使用www時導致AJAX請求失敗(與請求通信的PHP處理程序在相對路徑中給出,所以它不能成爲地址問題或其他東西 - 這就是這個問題是關於雖然),我已經強制WWW。使用.htaccess:爲什麼我的.htaccess www。如果沒有www,導致外部表單失敗。

#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] 

這很好。但是,我希望允許其他網站管理員在其網站上發佈我的一個表單,並在表單的操作屬性中使用我的表單網址。這一直工作,但是在我的.htaccess改變後,只有當網站管理員添加www時纔會提交表單。到行動價值。沒有www。該表單將不會被提交。

我應該如何更改我的.htaccess文件以確保這些表單也是在沒有www的情況下提交的?

回答

2

你可以使用

RewriteCond %{REQUEST_METHOD} ^GET$ 

將改寫只有GET請求,留下POST請求,因爲它們。

2

當301重定向時,大多數瀏覽器不轉發發佈的數據...因此,您會將這些請求視爲您的操作url的GET。

This behaviour is technically non-compliant但似乎是普遍接受的方法。

(C.F. http://www.lassosoft.com/Documentation/TotW/index.lasso?9083http://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

+0

是否告訴(搜索引擎)所有非www鏈接都轉到www鏈接是一個好主意?我應該使它成爲一個正常的重定向,而不是一個「permantently移動」的重定向? – Tom 2009-02-18 23:25:49

相關問題