mod_rewrite 规则中的两个参数

Two parametrs in mod_rewrite rule

我对 mod_rewrite 规则有疑问。 我正在尝试获取地址:

www.site.com/en/page.html

来自 url

index.php?page=page&lang=en

我已经试了几个小时了,我无法得到...不幸的是,我根本不知道mod_rewrite ...

有人可以指导我找到解决方案吗?

- 彼得

首先,确保在您的 Apache 配置文件中启用了 mod_rewrite
此外,确保允许 htaccess 文件(AllowOverride All 用于您的文档根文件夹)。

然后,将此代码放入您的 htaccess(必须位于文档根文件夹中)

RewriteEngine On
RewriteRule ^([a-z]{2})/([^/]+)\.html$ /index.php?page=&lang= [L]

此规则允许您到达任何 language/page,例如:

  1. http://domain.com/en/page.html --> /index.php?page=page&lang=en
  2. http://domain.com/fr/something.html --> /index.php?page=something&lang=fr

如果要限制lang参数:

仅限英文

RewriteEngine On
RewriteRule ^en/([^/]+)\.html$ /index.php?page=&lang=en [L]

英语和法语(作为示例)

RewriteEngine On
RewriteRule ^(en|fr)/([^/]+)\.html$ /index.php?page=&lang= [L]

感谢您的帮助 - 正是我的意思。 大致已经开始明白是怎么回事了…… 从手头的文档我可以处理它:)

- 彼得