Я знаю, что этот вопрос задавали много, но я пробовал много ответов, но безуспешно. я пробую эти ответы: .htaccess ssl и перенаправления без SSL

Удалите интеграцию SSL из определенной папки с помощью htaccess

И несколько других, которые я нахожу в Google. У меня есть только ssl на 3 страницах сайта, и я хочу сделать общее правило, что другие страницы должны перенаправляться на http, когда они находятся на https. им нравится Джон Сноу, я ничего не знаю об apache и htaccess.

Итак, это то, что я пробую до сих пор:

RewriteCond %{HTTPS} on
RewriteCond  %{REQUEST_URI} !^\/(page1|page2|page3)+ [NC]
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L]

И это:

RewriteCond %{HTTPS} on
RewriteCond  %{REQUEST_URI} !^/page1/$
RewriteCond %{REQUEST_URI} !^/page2/$
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L]

Часть отправки на http работает, но исключение не выполняется, или они отправляют все на http или перенаправляют на индекс.

Чтобы уточнить, я не вводил оба кода одновременно.

Другие правила по:

RewriteCond %{HTTP_HOST} !^www\.example\.com\$
RewriteRule (.*) http://www.example.com.br/$1 [R=301,L]


RewriteRule !\.(js|txt|ico|gif|GIF|jpg|JPG|png|PNG|css|swf|pdf|xml|XML|eot|EOT|ttf|TTF|woff|WOFF)$ index.php

Полный URL по запросу: https://www.example.com.br/area-restrita/ в нем может быть больше информации после части 'area-restrita'

1
gmlv 15 Июл 2014 в 22:48
Укажите пример полного URL-адреса, который вы хотите исключить и который вам не подходит? Также есть ли у вас другие правила в этом .htaccess?
 – 
anubhava
15 Июл 2014 в 22:53
Я редактирую вопрос, чтобы поставить другие правила
 – 
gmlv
15 Июл 2014 в 23:06
Но вы не предоставили пример полного URL-адреса, который вы хотите исключить, и который не работает для вас.
 – 
anubhava
15 Июл 2014 в 23:24
Отредактируйте снова, с полным URL
 – 
gmlv
15 Июл 2014 в 23:31

2 ответа

Лучший ответ

Попробуйте этот код:

RewriteEngine On

RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} !/(area-restrita|page2) [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=302]

RewriteCond %{HTTP_HOST} !^www\.example\.com\$
RewriteRule (.*) http://www.example.com.br/$1 [R=301,L,NE]

RewriteRule !\.(js|txt|ico|gif|GIF|jpg|JPG|png|PNG|css|swf|pdf|xml|XML|eot|EOT|ttf|TTF|woff|WOFF)$ index.php [L,NC]
1
anubhava 16 Июл 2014 в 00:56
Он по-прежнему перенаправляет на http на всех страницах, даже на «области-рестрита»
 – 
gmlv
15 Июл 2014 в 23:55
Откройте Firebug и посетите https://www.example.com.br/area-restrita/. Проверьте во вкладке Net, что вы получаете.
 – 
anubhava
16 Июл 2014 в 00:00
Я использую сетевую часть консоли Chrome: она дает: 302 Найдено на https и позже: 200 OK example.com.br/area-restrita Перенаправление
 – 
gmlv
16 Июл 2014 в 00:06
Но моя идея заключалась в том, чтобы НЕ перенаправлять эти 2 страницы, я не знаю, правильно ли я объяснил, потому что английский не мой родной язык. Я хочу перенаправить каждый URL-адрес, кроме этих 2.
 – 
gmlv
16 Июл 2014 в 00:21
1
Пожалуйста, рад, что все получилось. Это было действительно сложно из-за zend framework.
 – 
anubhava
16 Июл 2014 в 01:08

Если вы хотите перенаправить весь сайт на https , за исключением некоторых конкретных каталогов / URL-адресов, и в этих конкретных случаях вы по-прежнему хотите, чтобы они обслуживались через http , вы можете использовать этот метод в virtual.conf; в противном случае при совпадении RewriteCond определенные страницы всегда будут получать сообщение об ошибке «404 страница не найдена» .

<VirtualHost *:80> 
  ServerName www.example.com

  RewriteEngine On 
  RewriteCond %{HTTPS} !=on 
  RewriteCond %{REQUEST_URI} !^/app1/.*$ [NC]
  RewriteCond %{REQUEST_URI} !^/app2/.*$ [NC]
  RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L] 

  RewriteCond %{HTTP_HOST} !=apps.example.com [NC]
  RewriteCond %{REQUEST_URI} ^/app1/.*$ [NC,OR]
  RewriteCond %{REQUEST_URI} ^/app2/.*$ [NC]
  RewriteRule ^.*$ http://apps.example.com%{REQUEST_URI} [R,L,P] 

</VirtualHost>

<VirtualHost *:80> 
  ServerName apps.example.com
  DocumentRoot /home/sites/example.com/public_html
</VirtualHost>
0
gbutta 26 Авг 2019 в 17:07