2011-11-27 115 views
0

我的PHP网站使用动态URL,并在Apache中运行。本网站可以用荷兰语和英语查看。 默认是荷兰人,但我希望人们能看到默认的英文版本,如果他们访问:http://example.com 英文版可以http://example.com/en观看,但是这是一个动态的URL和/ EN目录不存在体力。我可以做301重定向,但我不希望用户在URL中看到/ zh。将Apache URL重写为动态URL

这是我在我的虚拟主机配置至今:

RewriteEngine on 
RewriteRule ^/(.*)$ /en [NC] 

不幸的是,这并不在所有的工作。访问.com域时,我仍然可以看到荷兰页面。 有没有人知道正确的rewriterule实现我的目标?我更喜欢我的apache虚拟主机配置文件中的规则。

回答

0

你可以尝试成才艾克:

 
RewriteRule !^[a-z]{2}/ /en%{REQUEST_URI} [L,R=301] 

我希望它为你工作

+0

谢谢你的快速反应。不幸的是,您提供的规则导致无限重定向循环到/ en/en/en/en等。 – user1067807

0

看一看http://httpd.apache.org/docs/current/rewrite/flags.html其中详细阐述了所有可能的标志。既然你说/ en并不存在,你可能需要使用P或者PT,这样你的其他规则在重写之后才会被评估。

你可能想尝试保持原始的URI作为重定向的一部分。

RewriteRule ^/(.*) /en/$1 [NC]