2017-06-25 34 views
0

我讀過很多答案,但不斷收到500個服務器錯誤,所以我明顯錯過了一些簡單的東西。.htaccess如何將多個頁面從一個部分重定向到另一個部分?

food-travel部分已更改爲/blog/,我只需要/food-travel/下的所有網頁重定向到/blog/

我已經嘗試了許多變化,但是這是我目前:

RedirectMatch 301 ^/food-travel[/]?(.*) ^/blog[/]?(.*) 

上午什麼我錯過了?任何正確的方向指針將不勝感激。

+0

你有你'.htaccess'文件的現有指示? – MrWhite

回答

1

你需要看看到你的HTTP服務器錯誤日誌文件比「狀態500」更精確的錯誤消息。但即使如此,有些事情應該在你的規則中改變。您似乎沒有考慮查看RedirectMatch指令的文檔。看看在這裏:https://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirectmatch

這很可能是接近你正在尋找:

RedirectMatch 301 ^/food-travel/?(.*)$ /blog/$1 
+0

那麼,我確實看過Apache的幫助頁面,並重新閱讀了你鏈接到的頁面,但仍然不理解對不起。雖然我確信這對知道的人來說是顯而易見的,但有些東西對我來說沒有意義。但是,現在我有了一個可行的答案,我可以查找我錯過的東西,並瞭解問題所在。乾杯 – CMSCSS

+0

好吧,很高興我能幫上忙。別擔心,我們都會一直學習,總的來說,對於我們所有人來說,我們所做的事情總比我們知道的東西要多得多;-)一般出錯的地方就是:這樣的規則有4個令牌:指令'RedirectMatch',http代碼(301),匹配模式和目標。模式和目標遵循不同的規則:模式是「正則表達式」(瞭解它們!),目標是帶有佔位符(「變量」)的路徑。你對兩者都使用了正則表達式,這是沒有意義的。 – arkascha

0

使用重寫規則

RewriteEngine On 
RewriteBase/

RewriteRule ^food-travel/(.*)$ /blog/$1 [L,NC,R=301] 

或使用RedirectMatch

RedirectMatch 301 ^/food-travel/(.*)$ /blog/$1 
相關問題