我买了一个域名(假设(www.)mydomain.com)。我有3个希望:首先,当用户在地址栏中输入mydomain.com时,它可以重定向到www.mydomain.com(在地址前面自动添加www。)。其次,由于我购买的域名不支持SSL,因此当用户在地址前输入https://时,直接将其转换为http://。第三,当用户输入不存在的网址时,请显示消息:“您要查找的页面不存在。”并在10秒后重定向到我的主页(www.mydomain.com/) 。
我搜索了互联网,但刚刚找到了添加www的解决方案。在地址前面自动。以下是结果。
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
答案 0 :(得分:1)
要将https
重写为http
,请使用以下规则
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
要添加www
,请使用以下规则
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
希望这可以帮助您解决问题
答案 1 :(得分:1)
要在同一规则中强制执行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秒钟,然后浏览器将重定向到主页。
请务必在清除浏览器缓存后对此进行测试。
答案 2 :(得分:0)
非www到www:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
答案 3 :(得分:0)
WWW重定向使用此:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
https到http重定向使用此:
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
如果用户收到404找不到页面错误,您可以使用页面重定向它们。 在主目录404.html或404.php中有一个页面,并在那里保留重新链接的链接。