2011-06-14 92 views
0

我想允许在URL
特殊charecters 我的htaccess代码允许特殊Charecters在URL

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteBase/
RewriteRule ^blog/?$ SocialNetwork/blog.php [L] 
RewriteRule ^blog/(\d+)/?$ SocialNetwork/blog.php?id=$1 [L] 
RewriteRule ^blog.php/(\d+)/?$ SocialNetwork/blog.php?id=$1 [L] 
RewriteRule ^blog.php/(\d+)/([A-Za-z0-9-_[]]+)/?$ SocialNetwork/blog.php?id=$1&title=$2 [L] 
</IfModule> 

它适用于

blog/1
blog/1/hii
blog/1yooo_title

但不为

工作

blog/1/[hii-this is [] title

+0

'博客/ 1/HII-这是[] title'是无效的网址实际上。 – anubhava 2011-06-14 18:00:14

回答

2

在您上次的重写规则中,尝试转义方括号。此外,如果你需要匹配空格,则需要包括\ S在那里:

^blog.php/(\d+)/([A-Za-z0-9-_\[\]\s]+)/?$ 

或许考虑简单的,它接受的称号东西:

^blog.php/(\d+)/(.+)/?$ 

另一点是,你不应该有您的网址中有空格。他们应该逃到“+”或%20。所以取决于这个你的正则表达式会改变,除了我提出的最后一个应该工作。

0

我很确定你不能在URL中使用空格。永远。