0

我试图通过在路径的开头附加语言代码来重写所有内容。当我使用这个:RewriteRule ^(.*)3$ es/$1

浏览mysite.com/admin3正确加载mysite.com/es/admin


但我不知道为什么,但是当我使用它时:RewriteRule ^(.*)$ es/$1

浏览mysite.com/admin确实加载mysite.com/es/admin但加载速度很慢,而且是纯 html(没有 css,没有图像等)。

有人能指出我做错了什么吗?这让我发疯了——我是一个正则表达式菜鸟。

谢谢。


更新:我们已经有一个多语言网站正在运行。但我们希望通过本地域提供对其他语言的替代访问。所以我们想mysite.com/es同时拥有newdomain.es。这通过 Drupal 的“域名”语言协商是不可能的。

现在我已经设置了newdomain.es/es,但我希望用户只能newdomain.es在地址栏上看到。

4

2 回答 2

0

我刚刚意识到可以使用 Drupal 国际化中的子域选项/admin/config/regional/language/configure

如果您选择 URL 旁边的 [configure],您可以启用域前缀,例如es.mysite.com.

然后您可以将您的 DNSmysite.es指向es.mysite.com. mysite.es只需将值添加到 DNS 中www - CNAME - es.mysite.com(请注意,有时您可能需要在目标中添加一个额外的点,例如www - CNAME - es.mysite.com.)。

于 2013-03-18T23:37:09.080 回答
0

我遇到的问题是,文件也被转发(例如,css、javascript、图像等)。这就是我解决它的方法:

RewriteCond %{HTTP_HOST} ^mysite.es$ [NC]
# optional: add other language exceptions so they still work
# RewriteCond %{REQUEST_URI} !^/fr/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ es/$1 [NC,QSA]

# for homepage
RewriteCond %{HTTP_HOST} ^mysite.es$ [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ es
于 2013-03-19T05:11:15.650 回答