2009-11-16 58 views
0

我正在使用htaccess。我嘗試在URL中傳遞一個值,如'C++'。htaccess中的'+'符號

像 「http://domain.com/Details/c++/detail.html

我檢索在htaccess的值等

重寫規則^詳情/([A-ZA-Z_0-9_,」 &/- 。] +)/( ([A-ZA-Z_0-9_。」 & /-]+).html)$的index.php?頁= $ 16 & ID = $ 1

但它僅返回 'C'。符號'+'不被接受。我需要'C++'的值。

有沒有解決方法?

+1

在哪裏,你嘗試如何傳遞價值? – Gumbo 2009-11-16 08:04:00

+0

我編輯了這個問題。我檢索的價值$ id – sathish 2009-11-16 08:13:25

+1

retagged,這不是一個PHP的問題 – NDM 2009-11-16 08:16:42

回答

3

嘗試使用Url編碼+字符。

http://domain.com/Details/c%25%25/detail.html

+0

問題是,在一個URL中'+'是一個空間的編碼。你可以用g。的方法繞過這個。 – Boldewyn 2009-11-16 08:05:26

+0

我是否需要在.htaccess文件中執行此操作? – sathish 2009-11-16 08:14:06

+0

'%20'是空間的編碼。 – random 2009-11-16 08:23:45

1

是否有可能逃脫它,就像http://domain.com/Details/c%25%25/detail.html。 (我只是猜測)

1

http://domain.com/Details/c%2B%2B/detail.html

1

一個小小的安慰是:你並不孤單。由於這個問題是由設計的URI,埃本大網站像谷歌有自己的問題吧:

http://www.google.com/search?q=c++

這做了搜索公正「C」。

1

B flag試試:

RewriteRule ^Details/([a-zA-Z0-9_.,'&/-]+)/([a-zA-Z0-9_.,'&/-]+\.html)$ index.php?page=$2&id=$1 [B]