我試圖做到以下幾點重定向: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"
而且這導致內部服務器錯誤。你們可以看到這個代碼有什麼問題嗎?
我試圖做到以下幾點重定向: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"
而且這導致內部服務器錯誤。你們可以看到這個代碼有什麼問題嗎?
基本上你有一些非法字符,如「/
你需要編碼每個參數的值。我不知道你怎麼能做到這一點的,你所使用的編程語言,但在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」
記住,重寫規則:
使用此重寫規則改爲:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+cgi-bin/teemz/teemz\.cgi\?board=_master&action=opentopic&topic=4&forum=The_Forum [NC]
RewriteRule^/content/1998-09-10/1004/wet-h2s---hic-concern---ae-amp [L,R=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 [L,R = 301]'無濟於事。 –