使用空格重写URL

时间:2014-11-22 15:15:36

标签: php .htaccess

我有这样的网址:

www.qwerty.in/details.php?vendor_id=1&name=abcd%20cafe

我试图在.htaccess文件的帮助下如下所示:

www.qwerty.in/1/abcd-cafe 

我正在尝试以下但不幸的是它不起作用。任何人都可以帮忙

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ details.php?vendor_id=$1&name=$2

2 个答案:

答案 0 :(得分:2)

你的角色也必须允许空间:

RewriteRule ^([\w-]+)/([\w-\s]+)$ details.php?vendor_id=$1&name=$2 [L,QSA]

我使用了\w,与[a-zA-Z0-9_]相同。

答案 1 :(得分:0)

以下规则会将您的网址从www.qwerty.in/details.php?vendor_id=1&name=abcd%20cafe转换为www.qwerty.in/1/abcd%20cafe

RewriteRule ^([^/]*)/([^/]*)\.html$ /details.php?vendor_id=$1&name=$2 [L]

它更加概括,并且即使它们不是vendor_idname,也会转换前两个参数值。如果这不是您喜欢的行为,请查看anubhava's answer

使用以下方法可以实现将空格转换为下划线:

RewriteRule ^(.*)\s(.*)$ $1_$2 [N] 

另外,不要忘记确保重写引擎在线:

RewriteEngine On

如果您想进一步试验这些规则,我建议您最近发现一个网站:http://www.generateit.net/mod-rewrite/