2011-05-07 17 views
0

我在一個子文件夾「blog /」中安裝了Drupal站點。
它是在幾個月前的根,所以我不得不創建一個重寫規則重定向舊的URL到新的路徑。
這工作正常,除了它不適用於節點編輯。當我更新內容(POST方法)時,我總是在主站點(根文件夾中的一個)上獲得404頁面。
這是我的規則在根的.htaccess.htaccess POST上的重寫錯誤

RewriteRule ^content/(.*)$ http://www\.mysite\.com/blog/content/$1 [R=301,L] 
RewriteRule ^page/(.*)$ http://www\.mysite\.com/blog/page/$1 [R=301,L] 
RewriteRule ^sites/(.*)$ http://www\.mysite\.com/blog/sites/$1 [R=301,L] 
RewriteRule ^node/(.*)$ http://www\.mysite\.com/blog/node/$1 [R=301,L] 
RewriteRule ^blog/(.*)$ http://www\.mysite\.com/blog/$1 [R=301,L] 

RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC] 
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301] 

,這些都是在子文件夾中的.htaccess

RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC] 
RewriteRule ^(.*)$ http://www.mysite.com/$1 [L,R=301] 

我不認爲是什麼有關的Drupal本身的,但它的東西在RewriteRule中是錯誤的。
有人可以給我一個建議嗎?

回答

0

通過使用完整的http:// URL和R=301,您告訴服務器將重定向標頭髮送到瀏覽器,而不是進行內部重寫。 POST變量將不會重新發送到新位置。

如果您希望POST變量通過,您需要進行內部重寫(假設重寫目標與您的.htaccess文件在同一臺服務器上)。這些不會更改瀏覽器欄中的URL,但 - 不確定這是否是您想要的。

RewriteRule ^page/(.*)$ /blog/page/$1 [QSA,L] 
+0

謝謝,但是這並沒有解決問題。我仍然收到404錯誤。 – pasine 2011-05-07 11:37:44