簡體   English   中英

使用301重定向htaccess從URL中刪除某些字符?

[英]Remove Some Characters From URL Using 301 Redirect htaccess?

我想從網址末尾刪除一些字符?m=1?m=0 為此,我使用博客文章中的JavaScript 如何將Blogger移動模板強制重定向到桌面模板? 並以我想要的方式編輯它,直到低於1且工作正常。

<script type='text/javascript'>
var curl = window.location.href;if (curl.indexOf('m=1') != -1) {curl = curl.replace('m=1', '');window.location.href = curl;}
var curl = window.location.href;if (curl.indexOf('m=0') != -1) {curl = curl.replace('m=0', '');window.location.href = curl;}
</script>

它刪除了我想要的多余字符,然后重定向到新的URL,但是根據Google的說法,它對SE不友好,我必須通過.htaccess使用301 Redirect ,它還會告訴每個搜索引擎該URL現在也已更改為此。

我的網址顯示為http://www.blog.com/2014/08/post-title.html?m=1http://www.blog.com/2014/08/post-title.html?m=0現在http://www.blog.com/2014/08/post-title.html?m=0 ...所以我可以使用.htaccess301 Redirect來做同樣的事情嗎?

如果您在整個網站上只有此查詢字符串,則可以嘗試以下操作:

RewriteEngine    On
RewriteCond      %{QUERY_STRING}    ^m=1$  [OR]
RewriteCond      %{QUERY_STRING}    ^m=0$
RewriteRule      (.*)               $1?     [R=301]

您可以使用mod_rewrite來做到這一點。 您可以使用%{QUERY_STRING}檢查條件中的查詢字符串,並使用[R=301]標志使其成為永久重定向。 QSD標志將丟棄查詢字符串。

在Apache 2.4及更高版本中,可以使用以下命令:

RewriteCond %{QUERY_STRING} m=[01]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [QSD,R,L]

在較低版本的Apache中,QSD標志不存在。 您將必須使用技巧,通過將空查詢字符串附加到重寫目標來覆蓋查詢字符串。

RewriteCond %{QUERY_STRING} m=[01]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI}? [R,L]

更改RR=301時,規則按預期工作。 請注意,您應該將其放置博客的其他任何規則之前 最后,最有可能將請求發送到您的博客后端的“包羅萬象”規則,您必須先重定向。

在這里,我得到了另一種解決方案,因此,如果upper無法滿足您的要求,請嘗試在.htaccess文件頂部添加以下代碼...

RewriteEngine On
RewriteCond %{QUERY_STRING} ^m=1$
RewriteRule ^(.*)$ /$1? [R=301,L]
RewriteCond %{QUERY_STRING} ^m=0$
RewriteRule ^(.*)$ /$0? [R=301,L]

上面的代碼僅在您的網址為http://www.example.com?m=1 ,而在http://www.example.com?m=1&foo=bar無效。

您可以使用簡單的Java腳本重定向用戶,此腳本應放置在所有CSS和JS的上方,因為一旦用戶訪問它就必須立即加載

<script>
if (screen.width <= 800) {
     document.location = "http://mobileversionofyourwebsite .com/";
  }
</script>

來源: 自動點 贊者sayoutlouder

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM