mod_rewrite将子域保留在URL中

FFi*_*ish 0 subdomain mod-rewrite

我有这个应用程序,我想支持多种语言.我认为最简单的方法是使用子域名

http://fr.domain.com/content
Run Code Online (Sandbox Code Playgroud)

现在我在服务器上创建了子域,指向主根,实际上,上面的URL是可访问的.
现在的问题是我的所有链接,这是绝对的.
有没有办法用mod_rewrite从URL中捕获语言,而不是重写到同一子域URL的链接?

因此,如果我们打开http://fr.domain.com/content并单击http://domain.com/link我希望页面加载的链接http://fr.domain.com/link

那可能吗?干杯!

cra*_*pty 5

如果要通过apache执行此操作,则可能需要检查HTTP_REFERER.最好开始更新网站,以便将来链接是动态的......

类似的东西(我目前无法真正测试):

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_HOST} !^[a-z]{2}\.host\.com$ [NC]
RewriteCond %{HTTP_REFERER} ^http://([a-z]{2})\.host.com/.*$ [NC]
RewriteRule (.*) http://%1.host.com/$1 [R,L,QSA]
Run Code Online (Sandbox Code Playgroud)

编辑:在第3个条件中删除了NOT

您可能需要检查一些其他条件,但要测试一下以确定哪些有效.另外,如果您执行其他重定向,则需要一种方法来维护原始引荐来源.在某些方面,即使使用它们的链接,通过php(通过会话)或其他东西通过更动态的方式来实现这一点可能更容易.

我正在使用这些:

http://www.askapache.com/htaccess/mod_rewrite-variables-cheatsheet.html#HTTP_REFERER

http://www.askapache.com/htaccess/modrewrite-tips-tricks.html