簡體   English   中英

mod_rewrite編碼后的URL?

[英]mod_rewrite to encode the url after the?

我想在?之后轉換URL的所有內容。 被編碼

例如,如果我在瀏覽器中寫這個URL:

http://www.mywebsite.com/?page=exams/product/vmware/

轉化為

https://www.mywebsite.com/?page=exams%2Fproduct%2Fvmware%2F

這是因為Google將上述頁面索引為

http://www.mywebsite.com/product/vmware/

不存在

在這里,我可以用%BUT而不是%2F代替/,因為RewriteRule將%2讀取為正則表達式組。 然后,即使我可以將%2F替換為/,modrewrite也可能會將其讀取為/,然后創建一個無限循環。

到目前為止,在對代碼的測試中

本地主機:81 /?page = exams / product / vmware /

變成

本地主機:81 /?page = exams%25product%25vmware%25

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^(.*)\/(.*)$
RewriteRule ^(.*)$ $1?%1%%2 [N,E=redirect:true]
RewriteCond %{ENV:redirect} ^true$
RewriteRule (.*) $1 [R]
</IfModule>

我不知道如何(或是否可以這樣做)使用modrewrite但這里是javascript客戶端的方式

<script>
    var p = window.location.pathname;
    var q = window.location.search;

    history.pushState('data', 'title', p+"/?"+encodeURIComponent(q.substr(1)));
</script>

暫無
暫無

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

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