2010-01-30 47 views
1

我试图在URLs中使用特殊字符,但是我在修改shuld以使其正常工作时遇到了一些问题。在&char和其他特殊字符中使用url

我见过这样的URL:完美在Last.FM

http://www.last.fm/music/Simon+&+Garfunkel 
http://www.last.fm/music/小林武史 

的作品,但我怎么能做到这一点?

我问在this question一些方法来做到这一点,但已经部分解决了我的问题,感谢正则表达式后在.htacess文件(.+?),但我还是对阅读的URL问题。

如果我喜欢写东西http://mysite.com/event/Dance&Jump和我的PHP页面中使用:

//.htaccess 
RewriteEngine On 
RewriteRule ^(event/)(.+?)[/]?$ event.php?event_name=$2 

<? 
    print urldecode ($_REQUEST["event_name"]); 
?> 

页会打印:

//<html> printed page 

    Dance // "&Jump" is missing, how can I fix it? 

//</html> printed page 

我希望能够与几乎所有特殊字符的工作像Last.FM或维基百科

如何使用特殊字符网址和常用程序的技术?

回答

1

尝试B flag

RewriteRule ^event/(.+?)/?$ event.php?event_name=$1 [B] 
+0

非常感谢你,你可以这么温柔的给我一些链接,应归结为了[B]命令或仅仅是你给了一些解释?再次感谢! – vitto 2010-01-30 17:44:42

+1

@Vittorio Vittori:当* B *标志被设置时,反向引用值自动被URL转义。 – Gumbo 2010-01-30 17:47:45

+0

再次感谢您的解释! – vitto 2010-01-30 17:55:07