你真的应该选择其中一个。为了保持一致性,以及 SEO 的缘故。
强制使用 www。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^your-site.com [NC]
RewriteRule ^(.*)$ http://www.your-site.com/$1 [L,R=301]
移除 www。
RewriteEngine On
RewriteCond %{HTTP_HOST} !^your-site.com$ [NC]
RewriteRule ^(.*)$ http://your-site.com/$1 [L,R=301]
有趣的是,我刚好在寻找这个…… 谢谢!
为什么这个网站没有 “www” 就不能访问?
http://znanje.org/
你必须输入 www 才能加载页面
http://www.znanje.org/
A 和 Aname?
这取决于服务器配置。大多数服务器在没有 www 的情况下也能正常工作,但我偶尔会遇到一些不行的。
在我的网站上它是可以正常工作的。再次检查上面的配置。
看起来你的 DNS 记录有点问题。运行一个检查,它应该可以正常工作!
你应该在 apache 文件中添加一个 ServerAlias(假设网站由 apache 服务器提供),例如
DocumentRoot /path/to/website/files
ServerAlias www.
ServerName zanje.org
这也会将 https://yourdomain.com 重定向到 https://www.yourdomain.com 吗?
这不会移除任何子域名吧?不仅仅是 www。只是想知道。
不会,子域名应该没问题。
我刚在我的客户网站上设置了这个,现在它不工作了。他们是大型制造商,这让我很紧张!
在我的网站上它是可以正常工作的,把你的文件发过来。写到这里我会检查一下。
在测试之前就部署代码不是明智之举。
很简单:它要求 Apache 启用了 rewrite 模块。你可以向你的主机寻求一些信息。
#几乎普遍的 www - 解析(在 HTTP 和 HTTPS 中都从 URL 中移除 WWW)
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
当我尝试在我的 .htaccess 文件中使用它时,路径被移除了
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*) http://%1/$1 [R=301,L]
我得到的是:http://www.site.com/rulezz -> site.com/
而不是我想要的:site.com/rulezz
有什么想法吗?
你好,
通过这种方式从网站 URL 中移除 www 可能会导致子域名停止工作。我想知道另一种方法,让 .htaccess 只针对 www 进行操作,而不是任何第一个点之前的任何东西!
一些实现你想要的功能的建议,在该页面上的评论中写道:http://www.catswhocode.com/blog/10-useful-htaccess-snippets-to-have-in-your-toolbox
我在这里是个新手
你能解释一下 .htaccess 文件中的特殊字符吗… 在上面的示例中
感谢代码,我一直在寻找它。它在我的情况下有效,但效果很奇怪。
我有两个域名,一个是停放的。如果我对两个域名都使用非 www 代码,我会得到 “重定向循环”。如果我只对其中一个使用代码,它会生效 - 但第二个会被重定向到第一个域名。这可能是停放域名的正常现象,但我并不知道,感到很惊讶,而这正是我想要的:))
我在我的网站上使用以下代码
Christopher Burton,你的代码对我来说完美,但我如何将其重写以强制使用 www?这让我头疼!谢谢。
@Andy
你尝试过类似这样的代码吗?
谢谢 Christopher :-)
我使用了一段时间顶部的代码,没有问题,但我刚添加了一个子域名,它被重定向。
到目前为止,你的代码似乎只重定向对 www 子域名的尝试,而让其他所有请求通过。
完美!希望它能一直保持下去(毕竟浏览器(不)缓存或其他奇怪问题可能随时出现)!
关于 .htaccess 语法的最佳信息来源有哪些建议?
我在 apache.org 上找不到什么有用的东西,但我可能在看错了页面。
任何指针(以避免不断地寻找预先构建的一次性解决方案(比如你上面的代码))将不胜感激。
嘿 Christopher,
如果我尝试你的代码,子页面的 URL 会被重定向到主页。你知道为什么吗?
所以:https://mydmain.com/mypage/ 会返回到 https://mydmain.com/index.php
干杯,
/marc
@Christopher
我用我的笨方法做到了,见下面第 5 和 6 行
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^mysite\.
RewriteRule .* http://www.mysite.com%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php
mod_rewrite 的第二部分用于我使用的 swfaddress 系统,它将 http://www.mysite.com/contact 更改为 http://www.mysite.com/#/contact,这使得我的 Flash 网站能够被搜索引擎等索引。
问题是 REQUEST_URI 无法识别 # 符号,因此如果有人尝试访问 mysite.com/#/contact,而不是 http://www.mysite.com/#/contact,他们只会得到 http://www.mysite.com。如果他们尝试 mysite.com/contact,他们将获得 http://www.mysite.com/#/contact。
我认为这是我能做到的最好的结果,但我确实感谢你的帮助,谢谢。
基于 black-light-studio 的 和 Christopher Burton 的解决方案。这将移除任何数量的 www. 子域名。我不希望这种情况真正发生,但鉴于 http://www.www.extra-www.org 的倡议,你永远不知道一些疯狂的服务器管理员会做出什么举动。
这在 https://www.subdomain.domain.com 中不起作用。
Apache 建议不要为此类行为使用 RewriteRule。重写处理会给您的网站带来更多开销。您不希望该重写规则对有效 URL 一再运行。
https://httpd.apache.ac.cn/docs/2.4/rewrite/remapping.html#canonicalhost
谢谢!工作正常。
干杯
Mat
这有效.. 非常感谢..
我想问一下关于 .htaccess 的问题,并且我对此有问题..
我有一个网站,我希望 **类别** 成为 **子域名**,像这样,**http://domain.com/category** -> **http://category.domain.com**
有人可以帮我解决我的问题吗.. 谢谢…
简单来说:它需要 Apache 启用重写模块。
完美… 工作正常.. 非常感谢… 这太棒了..
你好,
我正在开发静态 html 网站,现在我想隐藏“.html”扩展名。请尽快提供任何解决方案。
谢谢
完美工作!谢谢
我可以使用以下代码删除 .html 扩展名
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html
遵循此链接
http://www.dailycreativedesign.com/remove-file-extension-from-url/
我已经看到过无数关于如何添加/删除“www”的帖子。同样,我已经看到过无数关于如何强制 http/https 连接的帖子。您如何同时执行这两项操作?我目前遇到了问题:我可以强制 https,并且可以删除“www”,但当两者结合在一起时除外。例如:https://www.example.com 保持不变。
我也在寻找一个解决方案来重定向 http/https 并删除 www。很想知道是否有任何人有解决方案。
我相信这个问题对于这个论坛来说非常容易。我不是网页设计师。谷歌最初在我的停放域名(在 GoDaddy 上)上索引为非 www。它现在已上线。我提交给了谷歌,网站地图和抓取都为 www。网站页面已编入索引,并在我使用 www 搜索时显示。但是,当我以非 www 的形式在 Google 中搜索时,停放域名的信息会显示在我的网站上。如何协调/合并/删除谷歌最初编入索引的第一个非 www 与我现有的 www 网站。
谢谢!
很棒的工作,还有另一个关于 .htaccess 的教程,它提供了一些有用的示例,还提供了一个关于强制 www 的示例 http://www.bewebdeveloper.com/tutorial-about-advanced-htaccess-examples
如果您没有使用 .htaccess,请尝试以下操作
http://www.stuckngo.com/2014/11/how-to-add-custom-domain-on-my-blogspot.html
嘿!谢谢,这太棒了!我的公司网站需要这个,你是最棒的!
谢谢!:))