.htaccess 如何仅在到达网站时应用htaccess?

.htaccess 如何仅在到达网站时应用htaccess?,.htaccess,redirect,.htaccess,Redirect,让我解释一下这个问题。我们有两种语言的网站:法语和荷兰语 当您到达我们的网站时,您将登陆www.domain.be,该网站将重定向 如果您的浏览器语言是荷兰语,您(如您在下面的代码中所见)可以使用荷兰语版本 设置为“nl”,如果设置为“en”(因为荷兰人经常在他们的浏览器中使用这种语言)或将您留在www.domain.be/fr.domain.be上(两个url都用于调用网站-fr…一个是对nl…一个的响应) 重新启动发动机 RewriteCond%{HTTP:Accept Language}

让我解释一下这个问题。我们有两种语言的网站:法语和荷兰语

当您到达我们的网站时,您将登陆www.domain.be,该网站将重定向 如果您的浏览器语言是荷兰语,您(如您在下面的代码中所见)可以使用荷兰语版本 设置为“nl”,如果设置为“en”(因为荷兰人经常在他们的浏览器中使用这种语言)或将您留在www.domain.be/fr.domain.be上(两个url都用于调用网站-fr…一个是对nl…一个的响应)


重新启动发动机
RewriteCond%{HTTP:Accept Language}^nl[NC]
重写规则^$http://nl.domain.be/ [左,右]
RewriteCond%{HTTP:Accept Language}^en[NC]
重写规则^$http://nl.domain.be/ [左,右]
在网站上,您可以通过单击右上角的2个链接选择是否要转到fr.domain.be或nl.domain.be。 当您单击其中一个链接时,即使您想转到fr部分(在荷兰部分导航时),htaccess也会重定向您,而nl部分也是如此

我怎样才能解决这个问题?我想htaccess只重定向你,当你第一次来到网站,但随后被取消激活,并允许用户选择他的语言,如果他想


你能帮帮我吗?我在这上面呆了两天…

你只是在重定向网站库
/
,所以直接切换到另一个页面应该不会有问题


当你手动切换时,你就不能使用一个假的索引页吗?与

类似,您可以为一个规则集创建多个条件,这样您就可以添加一个常规检查,确保重定向仅在您的域与HTTP\U引用不匹配时发生

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP:Accept-Language} ^nl [NC]
RewriteCond %{HTTP_REFERER} !^*\.domain\.be/ [NC] 
RewriteRule ^$ http://nl.domain.be/ [L,R] 
RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteCond %{HTTP_REFERER} !^*\.domain\.be/ [NC] 
RewriteRule ^$ http://nl.domain.be/ [L,R]
</IfModule>

重新启动发动机
RewriteCond%{HTTP:Accept Language}^nl[NC]
重写条件%{HTTP\u REFERER}!^*\。域\.be/[NC]
重写规则^$http://nl.domain.be/ [左,右]
RewriteCond%{HTTP:Accept Language}^en[NC]
重写条件%{HTTP\u REFERER}!^*\。域\.be/[NC]
重写规则^$http://nl.domain.be/ [左,右]
这个!意思是当HTTP_REFERER与url模式不匹配时(即“(wildcard.domain.be”)基本上不是这样说的

如果规则当前位于您的站点上并试图更改语言,则这将阻止规则运行


注意:我并没有靠近apache box来测试这个,所以我的语法可能不正确,但这应该会让您走上正确的道路。

使用cookies,这可能会帮助您:可能是因为右上角使用的链接与您所说的类似,我更应该使用nl)。domain.be/index?我想是这样。您的重定向对fr.domain.be/indexin无效事实上,问题是我使用了fr.domain.be。我尝试了您所说的内容,但没有成功。我最后尝试了fr.domain.be/index.php,结果成功了。谢谢您的帮助。是的,很抱歉,fr.domain.be/index将无法自然识别(您的文件夹中没有名为
index
且没有扩展名的文件)。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP:Accept-Language} ^nl [NC]
RewriteCond %{HTTP_REFERER} !^*\.domain\.be/ [NC] 
RewriteRule ^$ http://nl.domain.be/ [L,R] 
RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteCond %{HTTP_REFERER} !^*\.domain\.be/ [NC] 
RewriteRule ^$ http://nl.domain.be/ [L,R]
</IfModule>