2013-01-02 44 views
0

我試圖做到以下幾點重定向:htaccess的301重定向生產內部服務器錯誤與複雜的URL

Redirect 301 "/cgi-bin/teemz/teemz.cgi?board=_master&action=opentopic&topic=4&forum=The_Forum" "/content/1998-09-10/1004/wet-h2s---hic-concern---ae-amp" 

而且這導致內部服務器錯誤。你們可以看到這個代碼有什麼問題嗎?

+0

我使用重寫規則也嘗試:'重寫規則^/CGI \ -bin/teemz/teemz \ cgi的\ ?board = _master&action = opentopic&topic = 4&forum = The_Forum /?$/content/1998-09-10/1004/wet-h2s --- hic-concern --- ae-amp [L,R = 301]'無濟於事。 –

回答

0

基本上你有一些非法字符,如「/

你需要編碼每個參數的值。我不知道你怎麼能做到這一點的,你所使用的編程語言,但在ASP。 NET MVC我們有圖書館爲。

public ActionResult Index2() 
    { 
     var sb = new StringBuilder(); 
     foreach (var key in Request.QueryString.AllKeys) 
      sb.AppendFormat("&{0}={1}", key, HttpUtility.UrlEncode(Request.QueryString[key])); 
     var parameters = sb.Remove(0, 1); 
     const string rawurl = "http://localhost:49534/home?"; 
     var url = string.Format("{0}{1}", rawurl, sb); 
     return Redirect(url); 
    } 

編碼參數將成爲

板= _master &行動= opentopic &話題= 4 &論壇= The_Forum%22 +% 22%2fcontent%2f1998-09-10%2f1004%2fwet-H2S --- HIC-關注--- AE-放大器

但是你的瀏覽器地址欄中將保留參數

「?板= _master &行動= opentopic &話題= 4 &論壇= The_Forum 「+」 %2fcontent%2f1998-09-10%2f1004%2fwet-H2S --- HIC-關注--- AE-AMP」

0

記住,重寫規則:

  • 不匹配引導斜槓
  • 不匹配的查詢字符串

使用此重寫規則改爲:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+cgi-bin/teemz/teemz\.cgi\?board=_master&action=opentopic&topic=4&forum=The_Fo‌​rum [NC] 
RewriteRule^/content/1998-09-10/1004/wet-h2s---hic-concern---ae-amp [L,R=301] 
相關問題