2015-12-21 38 views
5

Mam pewne problemy z wieloma instalacjami wordpress i .htaccess przepisać reguły, głównie dla wymuszania https, ale również usuwania www. z dowolnej domeny.Wymuszenie braku strony WWW, ale wymuszenie https na całym Wordpress i całej domenie

domen/subdomen:

  • Wordpress 1: examplewebsite.com (/home/hostingacc/public_html/)
  • Wordpress 2: test.examplewebsite.com (/home/hostingacc/public_html/test/)
  • Wordpress 3: moretests.examplewebsite.com (/home/hostingacc/public_html/moretests)

.htaccess przepisuje

Próbowałem użyć kilku reguły przepisywania które znalazłem w internecie, nie wiem, co z nich jest najlepszy z nich korzystać, ale poniżej to główne zasady przepisujące że użyłem

RewriteEngine On 
RewriteCond %{HTTP_HOST}#%{HTTPS}s ^www\.([^#]+)#(?:off|on(s)) [NC] 
RewriteRule^http%2://%1%{REQUEST_URI} [R=301,L] 

że mam z https://github.com/h5bp/server-configs-apache/issues/48 ale jak wcześniej wspomniano, jednym z nich może być lepiej nadaje się WYMUSZENIE HTTPS i mocno USUWANIE WWW

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 [OR] 
RewriteCond %{HTTP_HOST} ^www.examplewebsite.com 
RewriteRule ^(.*)$ https://examplewebsite.com/$1 [L,R=301] 

lub

RewriteEngine On 
RewriteCond %{HTTPS} !=on [OR] 
RewriteCond %{HTTP_HOST} !^examplewebsite\.com$ [NC] 
RewriteRule^https://examplewebsite.com%{REQUEST_URI} [R=301,L] 

lub

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
RewriteCond %{HTTP_HOST} ^www*\.(.*examplewebsite\.com)$ [NC] 
RewriteRule^https://%1%{REQUEST_URI} [R=301,L] 

lub

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www*\.(.*examplewebsite\.com)$ [NC] 
RewriteRule^https://%1%{REQUEST_URI} [R=301,L] 
RewriteCond %{HTTPS} !=on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Wszystkie z powyższych zasad, wydają się działać w odniesieniu do wymuszania https i usuwanie www na głównej instalacji wordpress, ale przepisy nie obowiązują obecnie do subdomen lub /wp-admin/ podkatalogów dla każdej instalacji wordpress, zakładam, że jest tak dlatego, że w każdym z tych katalogów znajduje się plik .htaccess.

Issue Podsumowanie

  • examplewebsite.com (strona główna) jest prawidłowo zmuszone zawsze używa protokołu HTTPS, a także jest zmuszony do usunięcia www. ALE ... problem znajduje się na examplewebsite.com/wp-admin/, który nadal poprawnie wymusza https (albo przez regułę, albo poprzez wpl-config.php wymuś admin ssl, ale nie usunie fortuny www. Powód jest taki, ponieważ mam następujący plik .htaccess znajdujący się w folderze/wp-admin /, więc wygląda na to, że potrzebuję reguły dla htaccess w tym folderze, aby wymusić usunięcie strony www, a także wymusić https.

  • test.examplewebsite.com i moretests.examplewebsite.com (subdomeny) oba mają problem, gdzie nie zmusza hTTPS i nie jest też siłą usuwając www.

  • test.examplewebsite.com i moretests.examplewebsite. com (subdomeny) mają również ten sam problem co pierwszy/wp-admin/robi nie usuń na siłę www.

  • Jeśli przejdę do ustawień lub SQL dla moich poddomen, a nawet edytuję wp-config.php, aby zastąpić SQL i zmienić adres URL strony i strony głównej, aby mieć https i nie mieć strony www.(The https powoduje ten problem), a następnie instalacje wordpress stać inacessable, znikają i odwiedzając linki do subdomen przekierowania/ładuje główną stronę internetową zamiast

Konfiguracje

  • examplewebsite.com - aktualny. pliki .htaccess

strona:http://pastebin.com/raw/9RNuQZS5
WP Admin:http://pastebin.com/raw/8vVnDTRx

  • examplewebsite.com - Zmienne SQL

Site URL (Home):https://www.examplewebsite.com
Wordpress URL:https://www.examplewebsite.com

  • examplewebsite.com - WP Config (Zastępuje SQL)

Config:

define('FORCE_SSL_ADMIN', true); 
define('FORCE_SSL_LOGIN', true); 

define('WP_HOME','https://examplewebsite.com'); 
define('WP_SITEURL','https://examplewebsite.com'); 
define('DOMAIN_CURRENT_SITE', 'examplewebsite.com'); 
define('COOKIE_DOMAIN', 'examplewebsite.com'); 
define('ADMIN_COOKIE_PATH', '/wp-admin/'); 
  • test.examplewebsite.com i moretests.examplewebsite.com

subdomeny są konfiguracji jak poniżej, jednak wp-config nie jest stosowana w tej chwili, ponieważ wymuszony https powoduje: wydanie 4.

Pliki .htaccess są w 99% identyczne do tych na głównej domenie/miejscu z jednym wyjątkiem, że nie ma kodu zwyczaj WP przepisać pętli zasady (przekierowanie z www na bez przedrostka www i przekierowanie http na https)

  • test.examplewebsite. com i moretests.examplewebsite.com - Zmienne SQL

Site URL (Home):http://test.examplewebsite.com
Wordpress URL:http://test.examplewebsite.com

  • test.examplestrona internetowa i dodatkowe testy.examplestrona.com - WP Config (Zastępuje SQL)

Config:

define('FORCE_SSL_ADMIN', true); 
define('FORCE_SSL_LOGIN', true); 

define('WP_HOME','https://test.examplewebsite.com'); 
define('WP_SITEURL','https://test.examplewebsite.com'); 
define('DOMAIN_CURRENT_SITE', 'test.examplewebsite.com'); 
define('COOKIE_DOMAIN', 'test.examplewebsite.com'); 
define('ADMIN_COOKIE_PATH', '/wp-admin/'); 

Ustawianie powyżej, powoduje ten sam problem jak zmiany SQL (numer 4)

+0

Gdzie należy subdomeny przekierowanie jeśli nie https? Do domeny głównej lub do subdomeny za pomocą protokołu HTTPS? –

+0

Subdomeny powinny mieć wartość https zamiast http. – Ryflex

+0

Powiedziałeś, że wp-admin nie robi https? czy są jakieś inne reguły w twoim .htaccess, które by to zrobiły? –

Odpowiedz

0

kroki w celu sprawdzenia (I po prostu zilustruj dla jednej witryny):

  1. ping www.examplewebsite.com oczekiwany wynik: powinieneś zobaczyć ip Adres witryny
  2. ping examplewebsite.com oczekiwany wynik: powinieneś zobaczyć adres IP witryny
  3. Przejdź do https://examplewebsite.com aby upewnić się, można broswe się witryny
  4. dodać następczych jako początek Twój kod niestandardowy WP przepisać LOOP START w .htaccess root:

    # CUSTOM CODE WP REWRITE LOOP START 
    # WP REWRITE LOOP START 
    RewriteEngine On 
    RewriteCond %{SERVER_PORT} 80 
    RewriteRule ^(.*)$ https://examplewebsite.com/$1 [R,L] 
    RewriteBase/
    RewriteRule ^index\.php$ - [L] 
    

    powyższego jest zapewnienie dostępu przekierować wszystkie non-SSL access SSL jednocześnie zmienić nazwy wszystkich dostęp non-SSL witryny examplewebsite.com, teraz powinieneś zostać przekierowany do https://examplewebsite.com jeśli wpiszesz http://www.examplewebsite.com lub http://examplewebsite.com w przeglądarce

  5. ostatnia część ma mieć plik wp-config.php aby obejmować następujący:

    define('WP_HOME','https://examplewebsite.com'); 
    define('WP_SITEURL','https://examplewebsite.com'); 
    define('DOMAIN_CURRENT_SITE', 'examplewebsite.com'); 
    define('COOKIE_DOMAIN', 'examplewebsite.com'); 
    define('ADMIN_COOKIE_PATH', '/wp-admin/'); 
    

    ta część jest do zapewnienia równomiernego dostępu SSL do swojej www.examplewebsite.com dostaje rewrited do examplewebsite.com przez wordpress

bo masz pełną strona włączona jako jedyny Access SSL, dzięki czemu nie jest konieczne następujące w pliku wp-config.php:

define('FORCE_SSL_ADMIN', true); 
define('FORCE_SSL_LOGIN', true); 
+0

Odnośnie 1 i 2, pokazują mój IP serwera. Co się tyczy 3, tak moja normalna strona ładuje się ... Jeśli chodzi o 4, podałem kilka przykładów wymuszania ssl i usuwania stron www i wszystkie one działają, ale to nie rozwiązuje problemu. Re 5, już uwzględniłem to, jak wspomniano w moim oryginalnym wpisie. Jeśli chodzi o twój drobny punkt na końcu, z lub bez niego nie robi różnicy. – Ryflex

+0

@Ryflex numer 3 jest najważniejszą kwestią, musisz mieć dostęp do strony za pomocą https, w przeciwnym razie oznacza to, że nie ma dostępu do ssl! – Allen

+0

Tak, powiedziałem, że strona ładuje się jak normalnie. Moje certyfikaty SSL są w porządku i działają. – Ryflex