我希望我的网站始终重定向到默认语言(如果用户尚未请求) - 即如果默认语言是英语,我想将用户重定向到 http://domain.com/英语/ 当他/她进入 http://domain.com/ 时。
同时,我想从网址中删除“www”部分,并通过 http://domain.com/index.php 重定向所有流量。
我有以下.htaccess文件,该功能在用户输入 www.domain.com 时效果很好,但在用户输入 domain.com 时却无效(没有'万维网')。我做错了什么?
#
# Remove WWW from URL
#
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/english/$1 [R=301,L]
#
# Redirect all traffic through index.php
#
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]
答案 0 :(得分:1)
试试这个:
# Remove WWW from URL and redirect to /english/
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [OR]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ http://example.com/english/$1 [R=301,L]
答案 1 :(得分:0)
尝试
RewriteCond %{HTTP_HOST} ^(www\.)?example.com$ [NC]
使用?
使www可选,以便第一条规则捕获两者。
修改强>
使用此规则删除www。,然后使用index.php页面上的重定向转到/ english /而不是url重写规则。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
答案 2 :(得分:0)
我认为以下内容应该有效:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/english/$1 [R=301,L]
您说主机不是www.example.com,然后重定向到它。