Ma juhin Wordpressi ajaveebi, millel on probleem HTTPS-i ümbersuunamisega. Välja arvatud avaleht, ei suunata HTTPS-ile ühtegi teist URL-i, kui külastate HTTP-d.

Soovin suunata kogu HTTP-liikluse HTTPS-i. Praegu suunatakse HTTPS-ile ainult avaleht (http://www.example.com), kui proovite HTTP-ga.

kuid kui külastate aadressi http://www.example.com/page1, siis ei suunata seda HTTPS-i ja see jääb HTTP-le.

Ma ei taha kasutada ühtegi pistikprogrammi, näiteks "tõesti lihtne SSL". Pärast pikemat otsimist võrgus leidsin, et saan seda muuta .htaccess fail selleks. Siis proovisin aru saada .htaccess-failist (arvestades, et pole kunagi varem PHP, WordPressi ega isegi Apache'iga töötanud). Sain seda teada RewriteEngine On peaks teie failis ilmuma ainult üks kord, kuid minu puhul ilmub see kaks korda. võib-olla mõni plugin või teema oli seda muutnud, millest ma pole teadlik. allpool on minu .htaccess-faili sisu.

# BEGIN WordPress # The directives (lines) between `BEGIN WordPress` and `END WordPress` are # dynamically generated, and should only be modified via WordPress filters. # Any changes to the directives between these markers will be overwritten.  ExpiresActive On ExpiresByType image/jpg 'access plus 24 hours' ExpiresByType image/jpeg 'access plus 24 hours' ExpiresByType image/gif 'access plus 24 hours' ExpiresByType image/png 'access plus 24 hours' ExpiresByType text/css 'access plus 24 hours' ExpiresByType application/pdf 'access plus 1 week' ExpiresByType text/javascript 'access plus 24 hours' ExpiresByType text/html 'access plus 5 minutes' ExpiresByType image/x-icon 'access plus 1 year' ExpiresDefault 'access plus 24 hours'   Header set X-Endurance-Cache-Level '2'   RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]  # END WordPress RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

Mul pole ühtegi alamdomeeni. ainult üks domeen. Nii et kahtluste selgitamiseks on mul kaks küsimust.

1) Kas see .htaccess-fail on õige? Ma mõtlen, kas meil võib olla kaks RewriteEngine On read? et ka väljaspool seda jällegi pole ma selle süntaksiga eriti kursis.

2) Mida peaksin muutma, et kajastada HTTPS-i ümbersuunamist kõigil oma lehtedel?

Pealegi murdis see ka veebivälise WWW ümbersuunamise.

PS: need on üks linkidest, mida olen külastanud-

https://wordpress.org/support/article/htaccess/

.htaccess süntaks mitu RewriteEngine sees

https://www.hostinger.com/tutorials/ssl/forcing-https

Teie HTTPS-i ümberkirjutamise reeglit ei täideta kunagi, kuna see on pärast seda RewriteRule . /index.php [L]. See reegel sobib kõigile URL-i teedele ja on nende jaoks viimane reegel, mis selle tõttu täidetakse L lipp.

Selle ümbersuunamisreegli toimimiseks muutke see lihtsalt ülaserva .htaccess faili.

WordPress ise teeb mõned ümbersuunamised. Siin juhtub tõenäoliselt see, et ühe ümbersuunamise, mille näete, teeb WordPressi PHP-kood, mitte see .htaccess.

  • Nii et sa tahad öelda, et mul on vaja faili ülaosas lihtsalt kolm viimast rida (st enne )? kas see võib põhjustada probleeme?
  • Ma paneksin nad enne # BEGIN WordPress. WordPress suudab kõik oma jaotises üle kirjutada. Nende reeglite ülesseadmine ei tekita probleeme, vaid paneb need tööle.
  • Tänan, ma ei saa vastust positiivselt hääletada, kuna mul on vähem kui 15 mainet. märkis selle lihtsalt vastuseks.
  • "üks ümbersuunamine, mida näete, on tehtud WordPressi PHP-koodiga" - eelnev WP eesmine kontroller ei haara avalehe taotlusi (see ei vasta mustrile . ja see on ka a kataloogi, nii et tingimus ka ebaõnnestuks), seega on üsna tõenäoline, et ümbersuunamine sisse .htaccess - faili lõpus - käivitab selle päringu (nagu see toimiks ka kõigi staatiliste ressursside puhul). "See reegel vastab kõigile URL-i teedele" - kõik URL-i teed, mis on vähemalt ühe tähemärgi pikkused (v.a kaldkriipsu eesliide).

Võttes inspiratsiooni @ Stepheni vastusest, lahendasin selle, liigutades viimased 3 rida vahetult enne mod_rewrite blokeerida.

# BEGIN WordPress # The directives (lines) between `BEGIN WordPress` and `END WordPress` are # dynamically generated, and should only be modified via WordPress filters. # Any changes to the directives between these markers will be overwritten.  ExpiresActive On ExpiresByType image/jpg 'access plus 24 hours' ExpiresByType image/jpeg 'access plus 24 hours' ExpiresByType image/gif 'access plus 24 hours' ExpiresByType image/png 'access plus 24 hours' ExpiresByType text/css 'access plus 24 hours' ExpiresByType application/pdf 'access plus 1 week' ExpiresByType text/javascript 'access plus 24 hours' ExpiresByType text/html 'access plus 5 minutes' ExpiresByType image/x-icon 'access plus 1 year' ExpiresDefault 'access plus 24 hours'   Header set X-Endurance-Cache-Level '2'  RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]  RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]  # END WordPress 
  • WordPress võib kõik nende vahel üle kirjutada BEGIN WordPress ja END WordPress, nii et liigutaksin seda veelgi ülespoole. Kui te paneksite selle sinna, paneksin selle ülaosa sisse IfModule mod_rewrite.c blokeerige ja eemaldage üleliigne RewriteEngine On.
  • Kas saate oma vastust värskendatud skriptiga värskendada? see võib algajatele segadust tekitada

none: Charles Robertson | none