【问题标题】:.htaccess 301 redirects for XAMPP.htaccess 301 重定向 XAMPP
【发布时间】:2016-04-18 10:30:50
【问题描述】:

我已经在这个问题上花费了足够多的时间,但没有成功,所以是时候问了。

我现在遇到的问题的具体部分是将非 WWW URL 重定向到 WWW URL。有很多资源可以做到这一点,但没有一个能正常工作。

我目前有以下内容,文件中没有其他内容。

ErrorDocument 404 /404.php

Options -MultiViews

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

我也尝试了很多变体,包括带有硬编码 URL 的变体。

这是 XAMPP 和实时版本的各种浏览器上发生的情况。

XAMPP, Firefox. "example.com" -> "http://www.example.com/"
XAMPP, Chrome. "example.com" -> ERR_NAME_NOT_RESOLVED
XAMPP, Edge. "example.com" -> Hmm, we can't reach this page. 

Live, Firefox. "example.com" -> "http://www.example.com/"
Live, Chrome. "example.com" -> "http://www.example.com/"
Live, Edge. "example.com" -> "http://www.example.com/"

(当我开始这篇文章时,Live,Edge 无法正常工作,但我忘记清除缓存。不过,我仍然有兴趣让它与 XAMPP 一起工作。)

这是禁用 301 重定向缓存的情况。为 XAMPP 设置了一个虚拟主机以将 example.com 映射到 htdocs/example。 example.com 映射到 hosts 文件中的 localhost。

如何让这些输入也适用于 XAMPP 托管服务器?任何解决方案都需要兼容干净的 URL、尾部斜杠、截断的斜杠和删除的 .php 扩展名。

谁让 Web 开发如此艰难...

【问题讨论】:

  • 这听起来像是 DNS / 缓存问题。您发布的 .htaccess 代码没有任何问题,特别是如果这适用于某些环境而不适用于其他环境。当连接到本地 (XAMPP) 服务器时,您是否连接到互联网?如果您在 HOSTS 中定义了 example.com,那么您还需要在 HOSTS 中定义 www.example.com,否则它将重定向到实时站点(如果它完全解析)。您的 VirtualHost 还需要能够接受对www.example.com 的请求,而不仅仅是example.com
  • 太棒了,做到了。我添加了主机条目,然后添加了一个相等的虚拟主机条目,它工作正常。嗯,压力大了,非常感谢。如果您将其添加为答案,我会接受。

标签: apache .htaccess xampp


【解决方案1】:

这似乎是与 DNS 相关的问题。

为 XAMPP 设置了一个虚拟主机以将 example.com 映射到 htdocs/example。 example.com 映射到 hosts 文件中的 localhost。

如果您在 HOSTS 文件中定义了 example.com,那么您还需要在 HOSTS 中定义 www.example.com,否则它将重定向到实时站点(如果它完全解析),这是 www.example.com 指向的位置到。

您的本地虚拟主机还需要能够接受对www.example.com 的请求,而不仅仅是example.com。如果使用基于名称的虚拟主机,则可以使用ServerAlias,例如:

ServerAlias www.example.com

【讨论】:

    猜你喜欢
    • 2011-05-01
    • 2011-01-03
    • 2012-03-10
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多