1

我正在尝试做这样的事情http://myweb.com//page

如果第一个参数不存在,它只处理第二个参数。第一个是语言,它存储在会话中,但是,它可以更改 throe ?lang=en..

我正在尝试这样的事情,但它不起作用

RewriteRule ^([a-zA-Z_]+)?/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2
4

2 回答 2

2

尝试将它们设为 2 个单独的规则,因为前导斜杠已被删除。

RewriteRule ^([a-zA-Z_]+)/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2 [L,QSA]
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1 [L,QSA]
于 2012-07-02T17:56:26.377 回答
1

在我之前做过的可切换语言的网站上,我选择始终在 url 中使用该语言,这样更容易全面实施,并且对用户来说看起来更好。

RewriteRule ^$ /en/ [L]   #default language
RewriteRule ^([^/]+)/(.+)$ index.php?lang=$1&page=$2 [QSA,NE]   # first "slug" is presumed always language the rest is a page identifier

在这里,您可以将没有设置语言的用户定向到 geoip 脚本或将用户代理字符串分割为语言代码或其他内容以使猜测更准确的脚本,而不是定向到 /en/。

于 2012-07-02T17:59:42.767 回答