Htaccess File Урок и съвети

Имам сървър с основен домейн и няколко поддомена. На всеки от поддомените има независими сайтове / инсталации на wordpress, а също и на основния домейн. (Знам за мултисайта, но всички те са независими клиенти, така че не исках смесени бази данни).

Всичко, което искам, е всички да използват HTTPS по възможно най-лесния начин (продължавам да създавам подсайтове за нови клиенти). Обикновено използвам приставката „Наистина опростен SSL“ и тя работи, но изглежда не поддържа поддомейни по този начин.

В момента имам основния си домейн с инсталиран плъгин, като HTTPS работи напълно добре. Той има този htaccess:

# BEGIN rlrssslReallySimpleSSL rsssl_version[3.2.6]  RewriteEngine on RewriteCond %{HTTPS} !=on [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]  # END rlrssslReallySimpleSSL # BEGIN WordPress  RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]  # END WordPress 

Ако инсталирам приставката и се опитам да я използвам в подсайта, той се опита да добави този код (но той автоматично се проваля и не го вмъква):

# BEGIN rlrssslReallySimpleSSL rsssl_version[3.2.9]  RewriteEngine on RewriteCond %{HTTPS} !=on [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]  # END rlrssslReallySimpleSSL 

Според моето малко разбиране за htaccess, той се проваля, защото това е направено за основен домейн. Моят поддомейн в момента се открива като несигурен.

Бих искал да знам какво трябва да променя, за да накарам поддомейните да работят. Би било идеално, ако мога да направя мода на основния htaccess, така че промяната работи по подразбиране за всеки създаден поддомейн и бъдещи. Ако не, ще трябва да го направя на всеки htaccess на всяка подпапка (ако случаят е такъв, също е добре).

Не искам www пренасочвания от всякакъв вид. Нито един.

  • Можете ли да включите структурата на файловата система. Където поддомените и основният домейн сочат един към друг и където съответните .htaccess файлове се намират. Благодаря.
  • За потвърждение ... HTTPS е активиран за поддомейните?

... на всеки htaccess на всяка подпапка

По звуците на това, вашите поддомейни сочат към поддиректории извън корена на документа на основния домейн. Имайте предвид, че в този сценарий коренът .htaccess файл може да повлияе на конфигурацията на поддомейните. Това може да бъде добро и лошо. Въпреки че изцяло отделно инсталиране на WordPress в корена вероятно не се препоръчва.

Както е посочено, директивите за пренасочване HTTP към HTTPS трябва да работят добре, ако се използват в поддомейна .htaccess файл.

Ако инсталирам приставката и се опитам да я използвам в подсайта, той се опита да добави този код (но той автоматично се проваля и не го вмъква)
:
За моето малко htaccess разбиране, той се проваля, защото това е направено за основен домейн.

Изглежда провалят се защото тези директиви "не са вмъкнати" в поддомейна .htaccess досие ?! (Може би файл с разрешения за файл / собственик?) В противен случай няма нищо лошо в тези директиви, като се има предвид информацията във въпроса.

Опитали ли сте ръчно да добавите тези директиви в горната част на поддомейна .htaccess файл?

Би било идеално, ако мога да направя мода на основния htaccess, така че промяната работи по подразбиране за всеки създаден поддомейн и бъдещи.

Това е възможно обаче, тъй като имате друга "отделна" инсталация на WordPress в главната (родителска директория), тогава ще има допълнителни конфликти*1 това трябва да бъде решено, така че не бих препоръчал непременно да отида по този маршрут.

*1 Например предният контролер на WordPress в корена .htaccess файлът ще трябва или да бъде модифициран, за да работи за всички поддомейни, или да бъде заобиколен изобщо.


Ако обаче имате WordPress инсталации само в поддомейни / поддиректории, би било относително тривиално да имате майстор .htaccess файл в корена на основния домейн, който контролира неща като HTTP към HTTPS пренасочване и др. Ще се изисква Apache 2.4.8+.

За да имате общо HTTP към HTTPS пренасочване в родител / root .htaccess файл, който се прилага за всички поддомейни (и основния домейн), ще трябва да бъде модифициран, за да се използва REQUEST_URI сървърна променлива, вместо обратна препратка (тъй като обратната препратка ще изложи поддиректорията, към която сочи поддомейнът).

Например:

RewriteEngine On # Apply these rules BEFORE rules in child .htaccess files RewriteOptions InheritDownBefore # HTTP to HTTPS redirect for all subdomains RewriteCond %{HTTPS} !=on [NC] RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?