Apache URL重写为动态URL

时间:2011-11-27 12:01:46

标签: apache mod-rewrite

我的PHP网站使用动态URL并在Apache中运行。本网站可以用荷兰语和英语查看。 默认为荷兰语,但我希望人们在访问时默认看到英文版:http://example.com 可以使用http://example.com/en查看英文版本,但这是一个动态URL,并且/ en目录不是物理存在的。我可以进行301重定向,但我不希望用户在URL中看到/ en。

这是我目前在virtualhost配置中所拥有的:

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

不幸的是,这根本不起作用。访问.com域名时,我仍然可以看到荷兰语页面。 有谁知道正确的rewriterule来实现我的目标?我更喜欢我的apache virtualhost配置文件中的规则。

2 个答案:

答案 0 :(得分:0)

你可以试试像:

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

我希望它适合你

答案 1 :(得分:0)

查看http://httpd.apache.org/docs/current/rewrite/flags.html详细说明所有可能的标志。由于您说/ en不是实际存在,您可能需要使用P或PT,以便在重写后评估其他规则。

您可能希望尝试将原始URI保留为重定向的一部分。

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