Apache和Nginx URL重新導向做偽靜態,中文的問題。

來源:互聯網
上載者:User
首先,說一下情況:
1、我本地用的是Apache,伺服器上用的是Nginx。
2、設定的偽靜態起作用,沒有問題。
3、PHP代碼。

有個tag標籤功能,其中有tag中文標籤,我想讓連結是中文的形式出現,就像本站上的這個連結一樣。
http://segmentfault.com/t/%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1
在瀏覽器和滑鼠移至上方在連結上的時候,效果是如下:
http://segmentfault.com/t/資料庫設計

當然中文是通過urlencode("資料庫設計")得到的字串是:%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1

真正的問題來了:
當我使用了偽靜態後,發現自動把 “%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1” urldecode解碼了。

在網上找了好多資料,說是只要urlencode(urlencode("資料庫設計"))就行了,沒錯,雖然管用了。但是這樣的話就不如我直接使用這個標籤id就好了,比如http://segmentfault.com/t/123。但是我想要的是顯示中文,就和本站的效果一樣。

舉個例子,偽靜態代碼如下:

RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^(.*)/abc/([\w_\-\%\|\!\,\#]+)$ $1/abc.php?tag=$1&%1 [L]

那麼如何才能禁止apache和Nginx自動把字串解碼呢?

回複內容:

首先,說一下情況:
1、我本地用的是Apache,伺服器上用的是Nginx。
2、設定的偽靜態起作用,沒有問題。
3、PHP代碼。

有個tag標籤功能,其中有tag中文標籤,我想讓連結是中文的形式出現,就像本站上的這個連結一樣。
http://segmentfault.com/t/%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1
在瀏覽器和滑鼠移至上方在連結上的時候,效果是如下:
http://segmentfault.com/t/資料庫設計

當然中文是通過urlencode("資料庫設計")得到的字串是:%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1

真正的問題來了:
當我使用了偽靜態後,發現自動把 “%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1” urldecode解碼了。

在網上找了好多資料,說是只要urlencode(urlencode("資料庫設計"))就行了,沒錯,雖然管用了。但是這樣的話就不如我直接使用這個標籤id就好了,比如http://segmentfault.com/t/123。但是我想要的是顯示中文,就和本站的效果一樣。

舉個例子,偽靜態代碼如下:

RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^(.*)/abc/([\w_\-\%\|\!\,\#]+)$ $1/abc.php?tag=$1&%1 [L]

那麼如何才能禁止apache和Nginx自動把字串解碼呢?

你這個Rewrite應該不會英文中文產生歧義吧,只是你配置Rewrite參數裡只識別了encode形式的文字,所以導致了不能重新向而已吧。

你可以直接在正則裡接受所有字元,這樣就可以正常運行了。

另外,自動解碼應該是瀏覽器完成的,不是WebServer控制的。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.