使用 www 还是不使用 www

使用 www 还是不使用 www

可能重复:
URL 中包含“www”有什么意义?

www是否应该在 URL 前面使用?有些网站说应该,有些则说相反。

www如果URL 前面没有 is ,我应该在其中输入什么.htaccess来重写 URL 并针对搜索引擎优化我的网站?

答案1

是的,最好(从 SEO 角度来看)将一个重定向到另一个。您需要避免内容重复和链接汁碎片化(尽管现在主要搜索引擎上应该已经修复了这两个问题)。

<VirtualHost *:80>
    ServerAlias www.example.com
    RedirectMatch permanent ^/(.*) http://example.com/$1
</VirtualHost>

但请记住,无 www 运动的缺点是所有子域名也将传输主(无 www)域名的 cookie。

答案2

当然是 301 一个接一个。

www.当您设想某个时候可能在同一个域下拥有其他主机名/子域并且它们有自己的安全上下文时,有必要制作规范版本。

如果您选择非www.版本,则无法在主example.com站点上设置 cookie,除非同时将其提供给 上的任何内容subdomain.example.com。如果子域类似于 ,userimg.example.com您尝试在其中以较低的安全权限托管用户提交的数据,则非www.版本将泄露www.版本应单独保存的 cookie。

(当然还有其他与网络无关的东西,比如不能对裸域名进行 CNAME。)

答案3

没有理由不同时提供这两项服务。

答案4

对于某些人来说,这是一个偏好问题,而对于另一些人而言,这是一个激烈的宗教讨论问题(例如 kde 是否比 gnome 好,vim 是否比 emacs 好,等等)。

无论您选择哪种方式,以下来自标准 drupal .htaccess 的代码都向我们展示了如何将用户重定向到 www:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

这是强制使用非 www URL 所需的代码:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

相关内容