2009-11-16 60 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]