【发布时间】:2014-04-07 19:35:43
【问题描述】:
目前我的网站中只有一种语言,
我通过 .htaccess 实现了友好的 url,例如:
RewriteRule ^post/(.+)/(.+) post.php?id=$2&friendly=1
所以:
domain.com 是主页,domain.com/the-title/5 是 ID 为 5 的帖子的页面。
现在我想将其设为默认语言网址,例如,下一种语言是:
domain.com/es 是主页,domain.com/es/the-title/6 是 ID 为 6 的帖子的页面。 (但以前的规则也应该有效)
问题是,
我应该如何调整我的(或其他)重写规则以检查 url 的前 2 个字符(第一次拆分)并将其添加为参数,例如:&lan=es,如果未找到则不要添加这个参数?
让我们说:
^post/(.+)/(.+) post.php?id=$2&friendly=1(英文)
^es/post/(.+)/(.+) post.php?id=$2&friendly=1&lan=es(西班牙语)
但如果可能的话,
- 要使用更多语言(并在需要时添加额外参数),
- 仅使用其他规则,例如:
^es/photo/(.+)/(.+) photo.php?id=$2&friendly=1&lan=es(西班牙语)
有什么建议吗?
【问题讨论】:
-
与您的其他参数相同:
^(..)/post/(.+)/(.+) post.php?id=$3&friendly=$2&lan=$1(..) 表示正好 2 个字符。 -
@njzk2 好的,谢谢!问题是我不想为当前(默认)语言添加 slug 的拆分,有什么想法吗?
-
您可以使用
rewriteCond来检查网址中的语言参数。