[英]301 Redirect from http to https same page name
检查了论坛,但找不到理想的答案。 我最近在自己的网站上安装了SSL证书,并正在通过.htaccess文件创建301重定向,用于将近400个页面网址(以使Google满意)。 我想到了使用;
redirect 301 /contact.php https://www.mydomainname.co.uk/contact.php
但它破坏了网站。 我看到的唯一解决方案是;
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^contact\.php$ https://www.mydomainname.co.uk/contact.php [L,R=301]
上面的代码似乎可用于400页中的每页! 有没有可以在.htaccess文件中使用较少代码的更快方法?
非常感谢。 希望有人可以指教。
使用Apache重定向页面的基本方法有两种: Redirect
( mod_alias
)和RewriteRule
等( mod_rewrite
)。
Redirect
非常简单:它将仅将单个URL重定向到另一个URL。 有时它可能有用,但它的实用性仅限于其简单性:在HTTP到HTTPS重定向的情况下,它无法区分HTTP和HTTPS连接,因此即使您尝试将其重定向到HTTPS,已经在HTTPS上(因此您最终陷入无限重定向循环)。
另一方面, RewriteRule
更高级,更灵活。 您可以使用RewriteCond
有条件地重定向请求。 在您的情况下,仅当请求位于HTTP连接上时,您才希望将其重定向。
如您所提到的,您希望针对许多(我认为是全部)请求重定向到HTTPS。 您只需一个规则即可轻松完成此操作:
# Enable rewrites
RewriteEngine on
# Only run next RewriteRule on HTTP connections (not HTTPS)
RewriteCond ${HTTPS} off
# Redirect any page to the same URL with https:// schema
RewriteRule (.*) https://${SERVER_NAME}/$1 [L,R=301]
( ${SERVER_NAME}
变量将自动等于您的域名,因此您甚至可以在具有多个域名的Web服务器上使用它。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.