htaccess重定向使用mod_rewrite为seo友好的网址

时间:2011-11-21 20:07:38

标签: php .htaccess

我正在尝试使用htaccess修剪我的网址,将index.php作为密钥,使用以下代码:

  RewriteEngine on
  RewriteRule ^([^/]+)$ index.php?city=$1 [NC]

要在我的会员区使用此功能,我是否只需添加以下内容即可使用mysite.com/members/index.php?city=$1

      RewriteRule ^members/([^/]+)$ index.php?city=$1 [NC]

如果一个城市有多个单词,即:纽约市,最好的办法是什么?在.htaccess中定义它(不确定是否可能)来改变纽约市 - >纽约市或实际上任何破折号的空间。或者,在php中使用函数替换'' - > ' - '表示使用$ _GET的数据库查询?

1 个答案:

答案 0 :(得分:5)

我会用PHP中的破折号替换空格,然后重定向到新版本的URL以获得易于阅读的地址。 (空格编码为%20,不易读取)

这样您仍然可以输入地址domain.com/new york city,但会被重定向到domain.com/new-york-city而不是domain.com/new%20york%20city

.htaccess中的替换可能是这样的:

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

(基于对Search and replace in apache htaccess a RewriteRule的回答)