将使用 https 提供的所有动态链接重定向到 http

将使用 https 提供的所有动态链接重定向到 http

情况如下:

我们正在运行一个由Drupal。不久前,我们决定将网站作为 SSL 提供服务。将网站从 http 重定向到 https 的设置是由一位不再与我们合作的人完成的。

我可以在.htaccess文件中看到以下几行

#Redirect http to https
RewriteEngine On  
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://docs.dev.domain.com/$1 [R,L]

mydomain.com 指向 LAMPP 服务器的根目录,我的网站位于 webroot 内的文件夹中(docs.dev.domain.com/mysite)。

现在,已经决定不需要 SSL,必须将其删除,并且所有页面都必须通过 http(301 重定向)提供服务。

当我在 .htaccess 文件中通过使用RewriteRule重定向 URL 来执行此操作时(例如https://docs.dev.domain.com/mysite/content/book)当用户使用以下命令访问 https 时转换为 http:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]


#Redirect HTTPS to HTTP
RewriteCond %{SERVER_PORT} ^443$
#RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://docs.dev.domain.com/mysite/$1 [R=301,L]
#even tried this - RewriteRule ^(.*)$ http://docs.dev.domain.com/$1 [R=301,L]

但它会将 https 上的每个请求重定向到http://mydomain.com/mysite/index.php(甚至像(https://docs.dev.domain.com/mysite/content/book/1理想情况下应重定向至其http对应方)。

我该如何删除 https,以便我的动态 URL 通过纯 http 提供?抱歉,这是新手常遇到的问题。

答案1

交换文件中的顺序后,它就可以正常工作了.htaccess

RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ http://docs.dev.domain.com/mysite/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]

相关内容