Kā novērst visas kļūdas / kļūmes / kļūdas, izmantojot Epic Games Launcher! (2019. gada februāris)

Man apakšdomēnā ir instalēta programma WordPress: https://blog.example.com

Lai ieviestu SSL, manā kontā ir šādi novirzīšanas gadījumi .htaccess:

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

Tas kādreiz darbojās pirms kāda laika. Tagad, zvanot http://blog.example.com, Es saņemu:

Pārvietojās pastāvīgi

Dokuments ir pārvietots uz šejieni.

Mēģinot izmantot ErrorDocument, lai apstrādātu pieprasījumu, tika konstatēta 500 iekšējās servera kļūdas kļūda.

Vārds "šeit" 2. rindā saista ar http://blog.example.com.

Kas ir nepareizi ar .htaccess?

Es pārbaudīju WordPress iestatījumus, un tie nav problēma: Vietnes URL ir pareizi iestatīts uz https://blog.example.com.

  • 1 Tas var nebūt .htaccess. WordPress ir vietnes URL iestatījumi, kas vispirms jāmaina uz HTTPS: codex.wordpress.org/Changing_The_Site_URL
  • Es to pārbaudīju, un šeit tas nav jautājums. Vietrādis URL ir pareizi iestatīts WordPress iestatījumos.

Man izdevās to atrisināt, mainot .htaccess šādi:

 RewriteEngine On # BEGIN FORCE HTTPS RewriteCond %{HTTPS} !=on RewriteCond %{ENV:HTTPS} !=on RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]* # END FORCE HTTPS # BEGIN WordPress RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress  
  • 1 Iespējams, ka * beigās RewriteRule direktīva ir drukas kļūda? (Tā kā tas radītu kļūdu 500.) Ja jums tagad ir jāpārbauda ENV:HTTPS tad tas liek domāt, ka SSL ieviešana jūsu serverī ir mainījusies (iespējams, tagad to nodrošina front-end starpniekserveris?). Bet, ja tas tā ir, tad jums vajadzētu noņemt pārbaudāmo nosacījumu %{HTTPS} - tā kā šī pārbaude ir lieka.

Šī patiešām ir papildu informācija, jo, šķiet, ka jau esat atradis savu risinājumu, bet vienalga ...

RewriteCond %{SERVER_PORT} !^443$ RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301] 

Es nedomāju, ka tas kādreiz būtu darbojies tā, kā paredzēts, jo jums trūkst L (last) karodziņš uz RewriteRule. Ja tas, šķiet, pirms tam darbojās, es domāju, ka pati WordPress faktiski izdeva atbilstošu novirzīšanu?

Kopš L karodziņš šeit ir izlaists, pārrakstīšanas motors būtu turpinājis virzīties uz priekšējo kontrolieri un iekšēji pārrakstījis URL uz index.php. Ja vien WordPress nepiedalītos, klientam tiktu atdots 301 statusa kods, taču bez Location HTTP atbildes galvene (nepieciešama ārējai novirzīšanai). Tas varētu būt potenciāli kaitējis SEO.

Tomēr pats par sevi tas neizskaidro novirzīšanas cilpu. Iespējams, tas ir saistīts ar SSL ieviešanas izmaiņām jūsu serverī, ko iesaka jūsu atbilde.

  • 1 Es vienmēr to domāju [R] netieši [L], taču dokumentācijā teikts, ka tie gandrīz vienmēr jāizmanto kopā.
  • @StephenOstermiller Izmantojot R bez L manā pieredzē gandrīz vienmēr ir kļūda / pārraudzība. Ja tas faktiski neizraisa kļūdu, tas, iespējams, būs mazāk efektīvs. Pāris saistīti jautājumi: stackoverflow.com/questions/46650964/… un webmasters.stackexchange.com/questions/85563/… - AFAIK vienīgie karodziņi, kas nozīmē L ir F, G, P un PT (lai gan PT iekšā ir lieka .htaccess, tas joprojām nozīmē L).

Tā kā jūs izmantojat WordPress, vienmēr varat mainīt tabulas wp_options pirmos divus ierakstus uz savu https domēnu.

Vēl viens veids, kā to panākt, ir vietnes Site un WP Home pievienošana wp-config.php failā. Šeit ir saite uz attiecīgo kodeksu.

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?