我想使用我的.htaccess文件添加“www。”如果没有它请求所有URL,但我希望我可以这样做,而不必定义域,因为我想在许多网站上使用此代码而无需编辑它。这可能吗?
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^sitemap\.xml/?$ sitemap.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?filename=$1 [L,QSA]
</IfModule>
答案 0 :(得分:0)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
答案 1 :(得分:0)
抱歉,我无法回答你的答案。我建议您选择服务器端代码。
在php中你会做类似的事情......
$host = !empty($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
$url = explode(".", $host);
if (count($url) == 2){
//no subdomain found
redirect("www.".$host);
}
更新:这将与example.co.uk这样的域名有问题,不确定这是否是一个问题.....我试图支持你的网站上的子域名(因此不仅仅是检查www并附加)。
答案 2 :(得分:0)
HTML 5 Boilerplate使用:
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
这将添加“www。”即使已有子域名。