помогите составить RegExp
От: sushko Россия  
Дата: 13.01.18 10:05
Оценка:
Перевел сайт c HTTP на HTTPS, теперь мне нужно настроить 301-й редирект для всего сайта кроме папки /connect/.

Редирект в .htaccess для всего сайта выглядит так:

RewriteEngine On
RewriteCond %{HTTP:PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Помогите, пожалуйста, правильно написать RewriteRule, которая описывала бы редирект всего на свете кроме содержимого папки www.site.ru/connect/?
Бесплатный генератор отчетов для программ на C/C++
http://www.oxetta.com
Re: помогите составить RegExp
От: anovokreschenov Россия  
Дата: 13.01.18 11:10
Оценка: 5 (1)
RewriteEngine On

# Force HTTPS for all URIs except '/connect/'
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !/connect/ [NC]
RewriteRule ^.* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Force HTTP for '/connect/' directory only (optional)
RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} /connect/ [NC]
RewriteRule ^.* http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Отредактировано 13.01.2018 11:18 anovokreschenov . Предыдущая версия .
Re[2]: помогите составить RegExp
От: sushko Россия  
Дата: 15.01.18 07:27
Оценка:
Здравствуйте, anovokreschenov, Вы писали:

A>
A>RewriteEngine On

A># Force HTTPS for all URIs except '/connect/'
A>RewriteCond %{HTTPS} off
A>RewriteCond %{THE_REQUEST} !/connect/ [NC]
A>RewriteRule ^.* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

A># Force HTTP for '/connect/' directory only (optional)
A>RewriteCond %{HTTPS} on
A>RewriteCond %{THE_REQUEST} /connect/ [NC]
A>RewriteRule ^.* http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
A>


Ниработаит Вообще сайт не открывает.
Бесплатный генератор отчетов для программ на C/C++
http://www.oxetta.com
Re[3]: помогите составить RegExp
От: anovokreschenov Россия  
Дата: 15.01.18 07:36
Оценка:
Здравствуйте, sushko, Вы писали:

S>Ниработаит Вообще сайт не открывает.


А в логах апача что пишет?

Воспроизвел (скопипастил htaccess из своего сообщения, создал папку connect) у себя на Apache 2.4.27, все работет.
Отредактировано 15.01.2018 7:39 anovokreschenov . Предыдущая версия .
Re[3]: помогите составить RegExp
От: salnicoff  
Дата: 15.01.18 09:06
Оценка:
Здравствуйте, sushko, Вы писали:

S>Ниработаит Вообще сайт не открывает.


А mod_rewrite подключен?
Re[4]: помогите составить RegExp
От: sushko Россия  
Дата: 15.01.18 09:33
Оценка:
Здравствуйте, anovokreschenov, Вы писали:

S>>Ниработаит Вообще сайт не открывает.

A>А в логах апача что пишет?

[Tue Dec 19 17:14:56.200071 2017] [:error] [pid 27011] [client 109.252.55.104:50016] PHP Warning: include(): Failed opening 'vacations.php' for inclusion (include_path='.:/usr/share/php56:/usr/share/pear') in /home/u463874/имясайта.ru/www/m/index.html on line 25

Суть в том, что корневой index.html — это на самом деле PHP-скрипт, и в нем действительно есть строчка include 'vacations.php'; файл vacations.php лежит в корневой папке сайта.

Почему — судя по строчке лога — оно начинает вдруг искать не www/ , а в www/m/ ? Такой папки у меня нет и никогда не было.
Бесплатный генератор отчетов для программ на C/C++
http://www.oxetta.com
Re[4]: помогите составить RegExp
От: sushko Россия  
Дата: 15.01.18 09:34
Оценка:
Здравствуйте, salnicoff, Вы писали:

S>>Ниработаит Вообще сайт не открывает.

S>А mod_rewrite подключен?

Да, т.к. "канонический" редирект в .htaccess (не учитывающий моих закидонов с папкой /connect/) основан на mod_rewrite и работает
Бесплатный генератор отчетов для программ на C/C++
http://www.oxetta.com
Re[5]: помогите составить RegExp
От: anovokreschenov Россия  
Дата: 15.01.18 10:45
Оценка:
Здравствуйте, sushko, Вы писали:

S>[Tue Dec 19 17:14:56.200071 2017] [:error] [pid 27011] [client 109.252.55.104:50016] PHP Warning: include(): Failed opening 'vacations.php' for inclusion (include_path='.:/usr/share/php56:/usr/share/pear') in /home/u463874/имясайта.ru/www/m/index.html on line 25


S>Суть в том, что корневой index.html — это на самом деле PHP-скрипт, и в нем действительно есть строчка include 'vacations.php'; файл vacations.php лежит в корневой папке сайта.


S>Почему — судя по строчке лога — оно начинает вдруг искать не www/ , а в www/m/ ? Такой папки у меня нет и никогда не было.


Хм, связь с редиректом в htaccess не прослеживается, либо его содержимое несколько отличается от того что было приведено.
Re[6]: помогите составить RegExp
От: sushko Россия  
Дата: 15.01.18 12:31
Оценка:
Здравствуйте, anovokreschenov, Вы писали:

A>Хм, связь с редиректом в htaccess не прослеживается, либо его содержимое несколько отличается от того что было приведено.


Блин, я совсем плохой стал. Сверил IP-адрес, сверил все, а дату — 19 декабря — не проверил. Прошу прощения...

В error_log никаких строк с моим IP-адресом заа сегодняшнее число нет; в access_log последняя строчка такая:

109.252.55.104 — — [15/Jan/2018:11:19:46 +0300] "GET / HTTP/1.0" 301 230 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; MDDCJS; rv:11.0) like Gecko"

Это о чем-нибудь говорит? IP-адрес — мой локальный.
Бесплатный генератор отчетов для программ на C/C++
http://www.oxetta.com
Re[7]: помогите составить RegExp
От: anovokreschenov Россия  
Дата: 15.01.18 12:40
Оценка:
Здравствуйте, sushko, Вы писали:

S>109.252.55.104 — — [15/Jan/2018:11:19:46 +0300] "GET / HTTP/1.0" 301 230 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; MDDCJS; rv:11.0) like Gecko"


S>Это о чем-нибудь говорит? IP-адрес — мой локальный.


Говорит что сервер ответил статусом 301. Можешь хоть ссылку дать чтобы в браузере посмотреть ход выполнения запроса? Иначе это будет самая бесконечная ветка на этом форуме ))
Re[8]: помогите составить RegExp
От: sushko Россия  
Дата: 15.01.18 13:08
Оценка:
Здравствуйте, anovokreschenov, Вы писали:

A>Можешь хоть ссылку дать чтобы в браузере посмотреть ход выполнения запроса?


Ссылку дать не могу Т.к. для того, чтобы дать ссылку, надо (фактически) положить сайт, потом дать ссылку и ждать от тебя ответа — например, к завтрашнему дню, если сегодня у тебя рабочий день закончился
Бесплатный генератор отчетов для программ на C/C++
http://www.oxetta.com
Re[9]: помогите составить RegExp
От: rean  
Дата: 15.01.18 13:31
Оценка:
deleted
Отредактировано 22.04.2019 9:28 deleted2 . Предыдущая версия .
Re[10]: помогите составить RegExp
От: sushko Россия  
Дата: 15.01.18 14:05
Оценка:
Здравствуйте, rean, Вы писали:

R>Подобные вещи тестируются на поддомене, какой можно сделать за пару минут.


У меня сертификат без поддержки поддоменов

R>А так, лучше не редиректить на https.

R>Зачем эта принудиловка?!

На searchengines.ru говорят, что лучше делать именно так
Бесплатный генератор отчетов для программ на C/C++
http://www.oxetta.com
Re: помогите составить RegExp
От: maks__  
Дата: 15.01.18 14:21
Оценка:
S>Помогите, пожалуйста, правильно написать RewriteRule, которая описывала бы редирект всего на свете кроме содержимого папки www.site.ru/connect/?

nginx есть?
Re[8]: помогите составить RegExp
От: salnicoff  
Дата: 15.01.18 18:19
Оценка:
Здравствуйте, anovokreschenov, Вы писали:

A>Говорит что сервер ответил статусом 301.


Дальше лучше telnet'ом на 80-ый порт зайти и посмотреть.
Re[2]: помогите составить RegExp
От: sushko Россия  
Дата: 16.01.18 13:14
Оценка:
Здравствуйте, maks__, Вы писали:

S>>Помогите, пожалуйста, правильно написать RewriteRule, которая описывала бы редирект всего на свете кроме содержимого папки www.site.ru/connect/?


__>nginx есть?


Нету
Бесплатный генератор отчетов для программ на C/C++
http://www.oxetta.com
Re[3]: помогите составить RegExp
От: maks__  
Дата: 17.01.18 15:35
Оценка:
S>>>Помогите, пожалуйста, правильно написать RewriteRule, которая описывала бы редирект всего на свете кроме содержимого папки www.site.ru/connect/?

Если прописать редирект без учета папки connect, работает?
Другие сервера на данном апаче работают по https?
Re: помогите составить RegExp
От: salnicoff  
Дата: 17.01.18 17:29
Оценка:
Здравствуйте, sushko, Вы писали:

Да, еще такая мысль: а SNI нормально работает?
Re[4]: помогите составить RegExp
От: sushko Россия  
Дата: 17.01.18 19:25
Оценка:
Здравствуйте, maks__, Вы писали:

__>Если прописать редирект без учета папки connect, работает?


Да, работает вот такой вариант:

RewriteEngine On
RewriteCond %{HTTP:PORT} !^443$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

__>Другие сервера на данном апаче работают по https?


Не знаю. Мои сайты работают без HTTPS — кроме испытуемого
Бесплатный генератор отчетов для программ на C/C++
http://www.oxetta.com
Re[2]: помогите составить RegExp
От: sushko Россия  
Дата: 17.01.18 19:27
Оценка:
Здравствуйте, salnicoff, Вы писали:

S>Да, еще такая мысль: а SNI нормально работает?


Я не знаю, что это такое. Вику почитал на эту тему, но толком ничего не понял.
Бесплатный генератор отчетов для программ на C/C++
http://www.oxetta.com
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.