apache - .htaccess 允许 https 非 www,仅在 http 上强制 www

标签 apache http .htaccess mod-rewrite https

使用 Paypal 订阅时遇到问题,在 paypal 订阅配置文件中保留了旧的 https://example.com 域,如果不取消并重新订阅则无法更改。

我现在所拥有的是强制一切到http://www.example.com 所以http(s)://example.com 301 -> http://www.example.com

这是我目前拥有的。

paypal 正在尝试向 https://example.com/payments/ipn.php 提交一些订阅,它正在 https 上进行 301 重定向到 http://www.example .com 但您在 301 重定向时丢失了 POST 数据...

使用下面的代码,https://www.example.com 可以工作,但是由于我需要 https://example.com 才能让 Paypal 工作,我我不确定如何在不重定向到 HTTP 主机的情况下允许 HTTPS 域上的 none www (http://www.example.com)

我在 https 上添加了 robots.txt 重定向以禁止/,这是有效的,因为我不想在 google 上出现重复的网站。

我希望这一切都有意义。

 RewriteCond %{HTTP_HOST} ^domain\.com
 RewriteCond %{REQUEST_URI} !^(/payments)
 RewriteRule ^ http://www.domain.com%{REQUEST_URI} [L,R=301]

 RewriteCond %{SERVER_PORT} ^443$
 RewriteRule ^robots\.txt$ robots_ssl.txt [L] 

这是任何感兴趣的人的固定 .htaccess!

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

    RewriteCond %{SERVER_PORT} ^443$
    RewriteRule ^robots\.txt$ robots_ssl.txt [L]
    RewriteRule %{HTTPS_HOST} ^domain\.com%{REQUEST_URI}

最佳答案

要过滤 HTTPS,您可以使用以下 RewriteCond:

RewriteCond %{HTTPS} !=on  # if it's not HTTPS
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

或者当它是 POST 请求时,您可以避免重定向,这样 POST 数据就不会丢失:

RewriteCond %{REQUEST_METHOD} !=POST  # if it's not POST
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

关于apache - .htaccess 允许 https 非 www,仅在 http 上强制 www,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4826258/

相关文章:

Android,通过 HTTP POST 方法发送和接收 XML

javascript - 从子域使用主域的js和css

http - 为什么我们不在 http 上发送二进制文件而不是文本?

.htaccess - mod重写htaccess问题

apache - mod_rewrite 如果使用域 X 则重定向到特定 URL?

linux - (13)Permission denied : access to/cgi-bin/test. cgi denied

apache - Poodle漏洞需要将SSL 3.0改为TLS

apache - .htaccess代码阻止了我网站的所有访问量,怎么了?

java - 在 apache log4j 中编码模式布局

android - Blogger api 总是返回 401 错误响应