2016-02-06 83 views
0

我知道這應該是相對簡單的,但有麻煩,並從這裏閱讀並嘗試了幾個例子,但似乎沒有工作。模式匹配htaccess重定向

我需要暫時停止一個顯示結果的特定網址,並且希望 將用戶重定向到另一個網頁。

的URL匹配看起來像這樣:

http://www.testdomain.com/news/index.php?toptitle=big%2Bend&XMLFILE=http://anotherdomain/item.rss%3Fkeyword%3Dbig%2Bend

(URL是比上面長有多個參數)

但我要的是如果URL有:toptitle =在它的大%2Bend那麼我想訪問者重定向到另一個子目錄

這是我曾嘗試:

Redirect 301 /(toptitle=big%2Bend)$ /block/

然後我嘗試:

RedirectMatch 301 ^/(toptitle=big%2Bend)/?$ /block/

我已經有和沒有編碼嘗試過,但似乎並沒有被工作,所以必須做一些錯誤的。

其他的事情都在htaccess,因此我現在有點難倒工作 - 任何幫助感激..我知道它的基本:-(在adavance

+2

'Redirect'和'RedirectMatch'只能匹配URL的_path_組件,就像'RewriteRule'一樣。您需要一個'RewriteRule'來將舊路徑重定向到新目標,並在其之前使用'RewriteCond'來檢查查詢字符串是否正在查找參數=值組合。 – CBroe

+0

感謝您花時間回覆 - 一定會記住它的未來! – OLM256

回答

1

感謝如何:

RewriteEngine On 
RewriteBase/
RewriteCond %{QUERY_STRING} toptitle=big%2Bend 
RewriteRule ^(.*)$ block/? [R=301] 

這需要在主配置中啓用重寫模塊:

LoadModule rewrite_module modules/mod_rewrite.so

+1

@ OLM256很高興聽到這個工作!一些有用的參考文檔:[RewriteRule](http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule) - [RewriteCond](http://httpd.apache.org/docs/2.2 /mod/mod_rewrite.html#rewritecond) - [操作查詢字符串](http://wiki.apache.org/httpd/RewriteQueryString) –