带语言选择器的.htaccess mod_rewrite

时间:2012-06-13 14:31:49

标签: php apache .htaccess mod-rewrite

是否可以重写网址,例如:

http://www.domain.com/?language=en
http://www.domain.com/contact?language=en

为:

http://www.domain.com/en/
http://www.domain.com/en/contact

到目前为止我所拥有的:

RewriteEngine on
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?language=$1 [QSA,L]

http://www.domain.com/en/ <- Gives a server not found error
http://www.domain.com/en/contact <- Goes to the main root (/index.php) and give the en variable

1 个答案:

答案 0 :(得分:1)

试试这个:

<IfModule mod_rewrite.c>

  Options +FollowSymLinks
  RewriteEngine On
  RewriteBase /

  RewriteRule ^(en|fr)(/(.*))$ $2/index.php?language=$1 [L]

</IfModule>

注意:

我在其中添加了fr,以便您可以看到多种语言的示例。此外,这将是index.php脚本的内部重定向。

编辑:

现在修改为允许URI语言部分之后的内容。现在应该按照你想要的方式工作。

这里是正则表达式的一个很好的参考:

http://www.regular-expressions.info/reference.html