【问题标题】:.htaccess add hidden php get variable for language selection.htaccess 添加隐藏的 php 获取变量以进行语言选择
【发布时间】:2010-04-06 19:13:12
【问题描述】:

我有一个多语言网站,我使用 php get 变量来设置语言设置的 cookie。我有多个子文件夹(http://www.site.com/eshttp://www.site.com/de),每个子文件夹都有各自的 .htaccess 文件。访问这些文件夹时,.htaccess 文件会“静默”地重定向用户并添加适当的 php 变量:

-------
Options +FollowSymlinks
RewriteEngine on
RewriteOptions MaxRedirects=10
rewriterule ^http://www.site.com/es/$ http://www.site.com/?l=es [P,R=301]
rewriterule ^(.*)$ http://www.site.com/$1?l=es [P,R=301]
-------

当有人访问根目录:http://www.site.com 时,我想在 url 中添加一个 ?l=en 后缀“静默”。我怎么做?谢谢。

【问题讨论】:

    标签: php .htaccess variables get


    【解决方案1】:

    我认为你想要的方法是不可能的。

    但是,您可以(以某种方式)修改您的代码:

    RewritRule ... proxy_add_l.php

    其中,代码将:

    <?php
    $_GET['l'] = $_REQUEST['l'] = 'en';
    require 'index.php';
    ?>
    

    请注意,这真的非常非常糟糕,真的只能作为最后的手段。

    您不能将它们重定向到看起来更干净的 /en 吗?

    【讨论】:

    • 问题是我们已经建立了一个网站,很多页面已经有了pagerank。如果我们添加 '/en',我们会丢失这些。
    • 好的。如果未设置,仅修改您的代码以采用该语言怎么样?
    • 我不太清楚为什么我没有想到这个建议。我刚刚检查了是否将“l”设置为 get 变量,如果没有将语言变量设置为英语。谢谢蒂姆。
    【解决方案2】:

    我认为,如果您想要一个固定值,则可以通过以下方式完美实现:

    rewriterule ^http://www.site.com/$ http://www.site.com/?l=en ...
    

    我现在不在家,无法测试结果。

    【讨论】:

      猜你喜欢
      • 2013-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      • 1970-01-01
      • 2018-06-01
      相关资源
      最近更新 更多