虚拟主机不会重定向

发布于 2024-12-16 11:50:11 字数 574 浏览 0 评论 0原文

这是我的虚拟主机文件的剪辑:

  SeverName domain.com
  ServerAlias www.domain.com

  <Directory />
     Options -Indexes +FollowSymlinks
     RewriteEngine On
     RewriteCond %{HTTP_HOST} ^[^\./]+\.[^\./]+$ [NC]
     RewriteRule ^/(.*)$ http://www.domain.com/$1 [R=301,L]
     RewriteBase /
     RewriteRule ^index\.php$ - [L]
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule . archive.php [L]
  </Directory>

domain.com 不会重定向到 www.domain.com。

不过,下面的部分工作正常,将页面重定向到 archive.php。

Here's a clip of my virtualhost file:

  SeverName domain.com
  ServerAlias www.domain.com

  <Directory />
     Options -Indexes +FollowSymlinks
     RewriteEngine On
     RewriteCond %{HTTP_HOST} ^[^\./]+\.[^\./]+$ [NC]
     RewriteRule ^/(.*)$ http://www.domain.com/$1 [R=301,L]
     RewriteBase /
     RewriteRule ^index\.php$ - [L]
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule . archive.php [L]
  </Directory>

domain.com doesn't redirect to www.domain.com.

The part below works fine though, redirecting a page to archive.php.

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

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

发布评论

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

评论(1

少年亿悲伤 2024-12-23 11:50:11

如果从匹配模式中删除 / ,该规则是否有效?

RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

如果请求是到 http://domain.com 且没有尾随 /,则规则正如您用前导 / 编写的那样,可能不匹配。或者,mod_rewrite 可能会删除前导的 /,因为 上下文中有 RewriteBase /。这就是 RewriteRule 文档(“匹配什么?”)框)似乎在说。

Does the rule work if you remove the / from the match pattern?

RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

If the request is to http://domain.com with no trailing /, then the rule as you wrote it with a leading / might not match. Or, mod_rewrite may remove the leading /, since you have RewriteBase / in a <Directory> context. This is what the RewriteRule docs ("What is Matched?" box) seem to say.

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