你好(非常简单的问题),
如何映射
mydomain/language/somepage
要
mydomain/somepage.php
物理页面当然是mydomain / somepage.php
这个想法是/ en / somepage,/ fr / somepage,/ de / somepage都指向somepage.php(我打算用php在URL中传递语言)。
更具体地说,我希望apache能够从请求URI中理解SUPPRESS / fr / en / de并传递正确的文档,我的物理树没有任何/ fr / en / de子目录:即。
root/fr/subdir/subsubdir/somepage
应指向
root/subdir/subsubdir/somepage.php
谢谢!
*编辑*
所以,我认为我更好地了解了网址重写的工作方式,所以我已经明白了。它已经坏了,我真的很喜欢正则表达式,所以如果有人可以帮我解决它,我会喜欢它! ^^
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond ^[a-z]{2}$/%{REQUEST_FILENAME}\.php -f
RewriteRule ^([a-z]{2})/(.*)$ $2.php?lang=$1
说明:URL将以
的形式传递给apacheroot/(fr|de|en|whatever)/document
并且(应该)以/传递给php
的形式重写root/document.php?lang=(fr|de|en|whatever)
我希望它足够清楚,TYVM!
此外,还可以像
那样传递子目录root/(fr|de|en|whatever)/sub/.../document
非常好。我需要有关常量的htaccess的进一步解释,如%{REQUEST_FILENAME},%{REQUEST_URI},...
TY
答案 0 :(得分:1)
如果您尝试将用户重定向到apache中的某个URL,那么本教程应该为您提供一个很好的指导:
但是,对于您的网站,我认为更好的方法是使用语言选项作为查询字符串。我觉得这样你可以更好地处理基于语言的网站。例如,如果您的网站有30个不同国家/地区的本地化版本,则需要为所有30个国家/地区执行mod_rewrite,当您需要更新网站时,您必须全部修复它们。但是,如果使用查询字符串。您somepage.php
可以获取查询字符串值,并根据该值呈现必要的页面。
我认为实施起来更容易。 (或者这可能是一种错误的做法,我不知道这些缺点)