php – 如何使用.htaccess将非www重定向到www? (还有两个问题……)

摘要

我买了一个域名(假设(www.)mydomain.com).我有3个希望:首先,当用户在地址栏中输入mydomain.com时,它可以重定向到www.mydomain.com(在地址前面自动添加www.).其次,由于我购买的域名不支持SSL,因此当用户在地址前输入https://时,直接将其转换为http://.第三,当用户输入不存在的URL时,显示消息:“您正在寻找的页面不存在.”并在10秒后重定向到我的主页(www.mydomain.com/).

我的尝试

我已经搜索了互联网,但刚刚找到了添加www的解决方案.在地址前面自动.以下是结果.

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

问题

>我在上面找到的结果中是否有任何错误?
>有没有更好的方法来改善我上面找到的结果?
>当用户在地址前输入https://时,如何将https://转换为http://?
>当用户输入不存在的URL时,如何显示消息:“您要查找的页面不存在.”并在10秒后重定向到我的主页(www.mydomain.com/)?

最佳答案 强制执行http://和www.在同一规则中,您可以在root .htaccess中使用此代码:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} on
RewriteRule ^ http://www.example.com%{REQUEST_URI} [R=301,L,NE]

要显示404(找不到页面)错误的自定义消息,请使用:

ErrorDocument 404 "<html><head><META http-equiv="refresh" content="10;URL=/><head><body><h1>The page you were looking for doesn't exist</h1></body></html>"

在同一个.htaccess.此消息将显示10秒钟,然后浏览器将重定向到主页.

清除浏览器缓存后,请务必进行测试.

点赞