奇怪的重写难度 - 我做错了什么

时间:2013-03-14 16:34:38

标签: drupal mod-rewrite url-rewriting drupal-6

我试图通过在路径的开头附加语言代码来重写所有内容。当我使用它时: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

2 个答案:

答案 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