0
看起來這應該工作:mod_rewrite的404到另一個域,保持路徑
RewriteEngine On
RewriteCond %{REQUEST_URI} !-U
RewriteRule ^.*$ http://myotherdomain.com/$ [R=301]
但是,事實上導致什麼都沒有被改寫。我只想捕捉這個域上的任何404並將它們轉發到另一個域(包含完整路徑&查詢字符串)。
看起來這應該工作:mod_rewrite的404到另一個域,保持路徑
RewriteEngine On
RewriteCond %{REQUEST_URI} !-U
RewriteRule ^.*$ http://myotherdomain.com/$ [R=301]
但是,事實上導致什麼都沒有被改寫。我只想捕捉這個域上的任何404並將它們轉發到另一個域(包含完整路徑&查詢字符串)。
有趣的想法......但實施是錯誤的,不幸的是。這一次,其實工作原理:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) http://myotherdomain.com/$1 [R=301,L]
你沒有捕獲組 - 你有.*
但它不是「捕獲」 (.*)
,因此它不能在以後通過$1
引用。
您沒有背部參考(在我們的情況下爲$1
) - 只有$
它自己的符號。
這是有幫助的,但仍然不正確;使用這段代碼,請求加載HTML頁面,但沒有關聯的內容(圖像,CSS,JS);他們 - 所有 - 重定向,即使所有這些文件都在那裏。 – Nick
@Nick不幸的是,你誤解了它是如何工作的。假設你請求'http:// example.com/nothere.php',它會被重定向到'http:// myotherdomain.com/nothere.php'。現在所有的CSS/JavaScript /圖像都是相對於頁面或網站根目錄的,除非你使用了HARDCODED FULL DOMAIN NAME。如果您擁有'',則將從CURRENT DOAMIN請求圖片,重定向後圖片將爲'http:// myotherdomain.com/logo.php'。如果你有'',那麼將從原始域請求圖像。 – LazyOne
@Nick最好的方法 - 如果你不確定,並認爲我錯了 - 是提供一個在線的例子(我可以檢查自己,看看它是如何編碼的頁面)。如果你腦海中有完全不同的東西,那麼你的原始問題就不能很好地表達出來 - 因爲我的答案是回答你最初的問題。 – LazyOne