【问题标题】:htaccess - skip first folderhtaccess - 跳过第一个文件夹
【发布时间】:2015-11-08 02:00:03
【问题描述】:

如果您有这样的多语言网站:

example.com/en/some-folder/some-file

example.com/ru/some-folder/some-file

example.com/et/some-folder/some-file

是否有可能将“ru”、“en”和“et”捕获到像 $lang 这样的 PHP 变量中,同时只使用 htaccess 有一个看起来像这样的目录?

htdocs/some-folder/some-file.php

代替:

htdocs/en/some-folder/some-file.php

htdocs/ru/some-folder/some-file.php

htdocs/et/some-folder/some-file.php


我希望不必为每种语言重新创建所有文件夹和文件。但我也想把 URL 中的语言捕捉到一个变量中,并忽略它,就好像它不存在一样。

【问题讨论】:

  • 这些是物理文件夹还是虚拟文件夹?因为您可以在文件夹中复制另一个 .htaccess 并定义新规则。
  • en、ru 和 et 是虚拟的。其余的都是物理的

标签: php .htaccess variables multilingual


【解决方案1】:

您可以在 .htaccess 中使用它:

RewriteEngine on 
RewriteRule ^(en|ru|et)(/.*)$ $2?lang=$1 [NC,L,QSA]

example.com/en/some-folder/some-file.php重写为example.com/some-folder/some-file.php?lang=en

【讨论】:

  • 这是一个如此简单的任务。我想我误解了重写规则以及它们是如何工作的。太感谢了。希望其他人也能找到我的问题并使用这个简单的答案。
猜你喜欢
  • 2017-08-07
  • 1970-01-01
  • 2014-03-01
  • 1970-01-01
  • 2018-07-29
  • 1970-01-01
  • 1970-01-01
  • 2018-02-07
  • 1970-01-01
相关资源
最近更新 更多