我在處理一些應該很簡單的事情時遇到了一些麻煩。我想301將目錄中的所有內容重定向到新位置中的單個文件。將301從一個目錄重定向到一個文件
在我.htaccess
,我已經嘗試了以下...
Redirect 301 /myDir/ http://www.mydomain.com/myNewDir/index.html
這...
Redirect 301 /myDir/ http://www.mydomain.com/myNewDir/
這...
Redirect 301 /myDir http://www.mydomain.com/myNewDir
的問題是每個人都簡單地映射01內的每個文件,並將其附加到目標網址的末尾。
谷歌搜索後,我看到的東西,說要做到這一點...
Redirect 301 ^/myDir(.*) http://www.mydomain.com/myNewDir
但是,這只是做同樣的事情...它映射現有的文件位置的URL的結尾。
很容易在網上找到很多「.htaccess重定向」教程,但它們似乎只顯示了諸如「一對一文件映射」或「一對一目錄映射」的明顯例子。這些教程似乎也忽略瞭解釋各種相關的文件指令以及如何正確使用它們。
此特定的託管帳戶是垃圾並且還安裝了FrontPage擴展。修改重寫失敗(打破整個站點),但Redirect 301
線路正常運行。因此,直到我可以將這個新的(非FrontPage)網站遷移到更強大的主機帳戶,我需要堅持使用Redirect 301
單行。
我怎麼能簡單地用一個Redirect 301
來一切內/myDir/
重定向到位於/myNewDir/index.html
的同一個文件? (如果可能,我寧願只使用/myNewDir/
)。 請詳細解釋您的解決方案中使用的文件指令。
UPDATE:
以前接受的答案是行不通的。
例子:
RedirectMatch 301 /myDir1/(.*) http://mydomain.org/newpath/myDir1/index.html
...是給「重定向過多發生試圖打開」錯誤。
這是因爲/myDir1/(.*)
是字符串中的匹配任何地方因此,如果目標URL中包含/myDir1/
的任何地方,而不僅僅是根,它會被重定向到一個討厭的循環。
查看我自己發佈的答案以獲得正確的解決方案。
很好,謝謝。這開始讓我發瘋。這適用於將整個目錄(每頁內)的內容引導到給定頁面。 – Tom
另外值得一提的是,如果您之前有301重定向到錯誤的位置(將頁面附加到目標URL),您可能需要清除瀏覽器緩存,然後才能從.htaccess獲取新規則。 – Russ