我试图通过在路径的开头附加语言代码来重写所有内容。当我使用它时: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
。
答案 0 :(得分:0)
我刚刚意识到可以在/admin/config/regional/language/configure
下使用Drupal internationlisation中的子域选项。
如果选择URL旁边的[configure],则可以启用es.mysite.com
之类的域前缀。
然后,您可以将mysite.es
的DNS指向es.mysite.com
。只需在mysite.es
的DNS中添加值www - CNAME - es.mysite.com
(请注意,有时您可能需要在目标中添加额外的点,例如www - CNAME - es.mysite.com.
)。
答案 1 :(得分: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