我已经花了足够的时间来解决这个问题并且没有成功,所以现在是时候问了。
我现在遇到的问题的具体部分是将非WWW网址重定向到WWW网址。这样做有很多资源,没有一个能够正常运作。
我目前有以下内容,文件中没有其他内容。
ErrorDocument 404 /404.php
Options -MultiViews
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
我还尝试了很多这方面的变体,包括带有硬编码网址的变体。
以下是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扩展名兼容。
谁让网络开发变得如此艰难......
答案 0 :(得分:1)
这似乎是与DNS相关的问题。
为XAMPP设置虚拟主机以将example.com映射到htdocs / example。 example.com映射到hosts文件中的localhost。
如果您的HOSTS文件中定义了example.com
,那么您还需要在HOSTS中定义www.example.com
,否则它将重定向到实际站点(如果它完全解析),这是www.example.com
指向。
您的本地VirtualHost还需要能够接受www.example.com
的请求,而不仅仅是example.com
。如果使用基于名称的虚拟主机,则可以使用ServerAlias
,例如:
ServerAlias www.example.com