【问题标题】:Apache URL rewrite to a dynamic URLApache URL 重写为动态 URL
【发布时间】:2012-01-07 07:05:53
【问题描述】:

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

这是我目前的虚拟主机配置:

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

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

【问题讨论】:

    标签: apache mod-rewrite


    【解决方案1】:

    你可以尝试一下吗:

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

    希望对你有用

    【讨论】:

    • 感谢您的快速回复。不幸的是,您提供的规则导致无限重定向循环到 /en/en/en/en 等。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多