REGEX .htaccess RewriteCond 参数形成

发布于 2024-10-31 15:39:01 字数 243 浏览 1 评论 0原文

如何在 .htacess 中指定我希望对以 www.domain.com 开头的所有 URL 执行操作?
我想过
RewriteCond %{HTTP_HOST} ^www.domain.com(.*)$ [NC]
但这是错误的。
也尝试过
RewriteCond %{HTTP_HOST} ^www.domain.com(?:.*)?$ [NC]
但也好不到哪儿去。

How do I specify in .htacess that I want an action to be performed for all URLs beginning with www.domain.com?
I thought about
RewriteCond %{HTTP_HOST} ^www.domain.com(.*)$ [NC]
but it's wrong.
Also tried
RewriteCond %{HTTP_HOST} ^www.domain.com(?:.*)?$ [NC]
but isn't any better.

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

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

发布评论

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

评论(1

无风消散 2024-11-07 15:39:01

您已选择检查 HTTP_HOST 并据此做出决定。 HTTP_HOST 仅包含请求的主机名,不包含斜杠或完整 URL 的一部分。因此,我会删除 (.*) 或 (?:.*)?在 RewriteConds 末尾并再次检查。至少,我就是这样使用它的。

如果您尝试将 www 重定向到非 www(只是猜测)并希望确保传输请求的路径,这是我的代码:

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

它为搜索引擎使用 301“永久移动”重定向。

You have chosen to check against HTTP_HOST and make a decision based on that. HTTP_HOST only contains the hostname requested, and no slashes or parts of the full URL. Because of that, I would remove the (.*) or (?:.*)? at the end of your RewriteConds and check again. At least, that's how I use it.

If you're attemping to redirect a www to a non-www (just guessing) and want to make sure the requested path is transferred, this is my code:

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

It uses a 301 "Moved Permanently" redirect for search engines.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文