Apache2 mod_rewrite 和 .htaccess - HTTP_HOST 无法正常工作

发布于 2024-12-15 07:41:34 字数 327 浏览 0 评论 0原文

我正在尝试在我的 VPS 上编写基本重写规则,以从主机名的开头去除 www:

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

不是在职的。事实上,如果我在模式前面放一个感叹号,它就会匹配...然后进入重定向循环!我在这里缺少什么?我需要添加/删除 example.com 作为服务器别名吗?

I am trying to write a basic rewrite rule on my VPS to strip the www from the beginning of the hostname:

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

It is not working. In fact, if I put an exclamation mark in front of the pattern, it matches... then goes into a redirect loop! What am I missing here? Do I need to add/remove example.com as a server alias?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

屋檐 2024-12-22 07:41:34

更通用的解决方案,无需将域硬编码到其中。可能有用,即使你已经开始工作了。

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=302,L,QSA]

More generic solution without the need to hardcode the domain into it. Might be usefull, even though you got yours to work.

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=302,L,QSA]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文