我需要重定向所有傳入的請求獲取。例如:site.com?anystr
到site.com
301重定向所有獲取請求
我試圖這樣做
RedirectMatch /?(.*)$ site.com
但它會導致循環轉發,我也得到瀏覽器錯誤
我需要重定向所有傳入的請求獲取。例如:site.com?anystr
到site.com
301重定向所有獲取請求
我試圖這樣做
RedirectMatch /?(.*)$ site.com
但它會導致循環轉發,我也得到瀏覽器錯誤
我相信這是你想要的帽子:
RewriteEngine on
RewriteCond %{QUERY_STRING} .+
RewriteRule^/? [L,R=302]
即與查詢字符串的任何URL重定向查詢字符串根剝去目標使用?
。
如果我需要將'sitecom/news.html /?sasfs'重定向到我應該完成的'site.com/news.html'?我試過這個:'RewriteRule ^/news.html $ /news.html/? [L,R = 302]'但它不起作用 – engilexial 2014-11-24 10:15:53
那將是:'RewriteRule ^(news \ .html)$/$ 1? [L,R = 302]'與上面的'RewriteCond'相同。 – anubhava 2014-11-24 10:17:21
它在我添加一件事情時起作用。當我試過這個:'RewriteRule ^(。* \。html)$/$ 1? [L,R = 302]'和'RewriteRule^/? [L,R = 302]'只能工作一個 – engilexial 2014-11-24 10:23:48
RedirectMatch
不匹配後面的域名和查詢字符串的事情之前。正則表達式/?(.*)$
將匹配任何請求。
您將需要使用mod_rewrite。在Apache的主配置文件中啓用mod_rewrite並重新啓動Apache。然後將以下添加到您的.htaccess文件:
RewriteEngine on
RewriteCond %{QUERY_STRING} .+
RewriteRule^- [QSD,R,L]
更改[R]
標誌[R=301]
測試此按預期工作後。
我得到了500個服務器錯誤 – engilexial 2014-11-24 09:49:21
'RewriteEngine on RewriteCond%{QUERY_STRING}。+ RewriteRule^\?/[QSD,L,R = 301] ' – engilexial 2014-11-24 09:54:10
你的Apache版本是什麼? – Sumurai8 2014-11-24 10:58:23
閱讀[文檔](http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirectmatch)。 RedirectMatch將不匹配查詢字符串。您正將任何請求重定向到「http:// site.coom」。 – Sumurai8 2014-11-24 09:38:46