【发布时间】:2012-09-07 17:39:45
【问题描述】:
你好(非常简单的问题),
如何映射
mydomain/language/somepage
到
mydomain/somepage.php
物理页面当然是 mydomain/somepage.php
想法是/en/somepage、/fr/somepage、/de/somepage都指向somepage.php(我打算用php获取URL中传递的语言)。
更具体地说,我希望 apache 理解从请求 URI 中抑制 /fr /en /de 并提供正确的文档,我的物理树没有任何 /fr /en /de 子目录:即
root/fr/subdir/subsubdir/somepage
应该指向
root/subdir/subsubdir/somepage.php
谢谢!
* 编辑 *
所以,我想我对 URL 重写的工作原理有了更好的了解,所以我来到了这里。它坏了,我实际上很讨厌正则表达式,所以如果有人可以帮我解决它,我会喜欢它! ^^
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
【问题讨论】: