【问题标题】:How to use a language identifier at the start of url [duplicate]如何在 url 开头使用语言标识符 [重复]
【发布时间】:2015-11-30 13:15:17
【问题描述】:

我正在使用:http://localhost/en/index.php 来识别当前网站的语言。

但是,我正在寻找这样的方法:http://en.localhost/index.php

也许一些网络服务器配置或框架会有所帮助。

经过我所有的研究,我无法找到解决方案。 谢谢你,祝你有美好的一天。

【问题讨论】:

  • 这取决于你如何使用创建子域或在url中添加额外的参数
  • 这个问题太笼统了,无法回答,但您必须先在您的域上设置 DNS 通配符,然后使用 URL 重写来实现。
  • 对不起,我不知道从哪里开始。这就是为什么它很广泛,如果我有一些提示,我不是在这里问而是研究。我从来没有要求为我写教程,只是一些可以支持我的研究的提示。谢谢。
  • @Heru-Luin 应该是这样,谢谢!我得到了我需要的一切。
  • @Vladimir 我们不是在这里帮助您进行研究或“让您开始”。

标签: php url multilingual


【解决方案1】:

如果您使用wildcard 域配置,您可以做很多选择。假设您在 DNS 中有以下条目:

*.example.com    127.0.0.1
example.com      127.0.0.1

这会将example.com 下的所有域和子域重定向到一个位置。这样的东西也可以在Apache中配置。

ServerName   example.com
ServerAlias  *.example.com

他们都去同一个地方。在 PHP 中,您可以使用:

$lang = str_replace(".example.com", "", $_SERVER["HTTP_HOST"]);

根据$lang 中的变量,您可以制作它。如果你想为localhost 这样做,你需要这样设置你的 Apache 指令:

<VirtualHost *:80>
    ServerAdmin me@localhost.com
    DocumentRoot "C:/www"
    ServerName localhost
    ServerAlias *.localhost
    <Directory "C:/www">
        Options Indexes FollowSymLinks
        AllowOverride all
        Order Allow,Deny
        Allow from all
    </Directory>
</VirtualHost>

【讨论】:

  • 感谢您帮助我,主要是因为您没有对我的无知发表评论。如果可以的话,我会给你更多的积分。
  • @Vladimir 一切顺利。很高兴我能帮上忙。曾经我也是这样的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-06
  • 2015-04-06
相关资源
最近更新 更多