.htaccess разрешить https не www, заставить www только по http - PullRequest
2 голосов
/ 28 января 2011

Проблемы с подписками Paypal сохранили старый домен https://example.com в профиле подписки Paypal и не могут быть изменены без отмены и повторной подписки.

На данный момент у меня есть все, что заставляет http://www.example.com, поэтому http(s)://example.com 301 -> http://www.example.com

Это то, что у меня сейчас есть.

PayPal пытается отправить некоторые подписки на https://example.com/payments/ipn.php он выполнял перенаправление 301 по https на http://www.example.com, но вы теряете данные POST при перенаправлении 301 ...

С кодом ниже, https://www.example.com работает, но, так как мне нужно https://example.com для работы Paypal, я не уверен, как разрешить none www в домене HTTPS без его перенаправления на хост HTTP (http://www.example.com)

Я добавил перенаправление robots.txt, чтобы запретить / на https, это работает, так как я не хочу дублировать сайт в 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}

1 Ответ

2 голосов
/ 28 января 2011

Для фильтрации 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...