Apache Htaccess按语言重定向,除非用户来自入站链接。怎么用?

Apache Htaccess按语言重定向,除非用户来自入站链接。怎么用?,apache,.htaccess,redirect,hyperlink,Apache,.htaccess,Redirect,Hyperlink,因此,我的Htaccess文件中有以下代码: RewriteEngine on RewriteCond %{HTTP:Accept-Language} (es) [NC] RewriteRule .* http://example.com/es/ [R,L] 如您所见,我正在将西班牙语浏览器语言用户重定向到网站的西班牙语版本。这样,即使我在西班牙语版本的页面上有一个指向该网站英语版本的链接,用户也无法看到它,因为无论发生什么,重定向都会将他们返回到西班牙语版本 如何允许已重定向到西班牙语页面的

因此,我的Htaccess文件中有以下代码:

RewriteEngine on
RewriteCond %{HTTP:Accept-Language} (es) [NC]
RewriteRule .* http://example.com/es/ [R,L]
如您所见,我正在将西班牙语浏览器语言用户重定向到网站的西班牙语版本。这样,即使我在西班牙语版本的页面上有一个指向该网站英语版本的链接,用户也无法看到它,因为无论发生什么,重定向都会将他们返回到西班牙语版本


如何允许已重定向到西班牙语页面的西班牙语用户通过单击“英语版本”链接访问实际的英语版本页面?

最简单的方法可能是在首次自动重定向用户时设置cookie。如果该cookie存在,则不执行任何操作:

RewriteEngine on
RewriteCond %{HTTP_COOKIE} !language=(en|es)
RewriteCond %{HTTP:Accept-Language} (es) [NC]
RewriteRule ^ http://example.com/es%{REQUEST_URI} [R,L,CO=language:es:www.example.com:9999]

RewriteCond %{HTTP_COOKIE} !language=
RewriteRule ^ - [CO=language:en:www.example.com:9999,L]

这就是你正在做的:-除非我要求你的主页,否则我不想要你的主页,不要将我重定向到它,将我重定向到我想要的文章/页面。@scragar我没有跟踪你。你想让我说什么?你帮我回答问题了吗?我的网站是一个1页的网站。如果我给一个说西班牙语的访客看一个专门为他写的页面,有什么不对?我不会将任何侧页重定向到主页,因为我所有的都是主页和西班牙语主页:),所以你们没有任何入站链接?因为如果你没有任何其他页面,那么你当然不需要链接让人们访问它们。如果我想添加更多指向ES页面的语言,你的代码会是什么样子?