Puncte:1

Bara oblică finală a rădăcinii site-ului a fost eliminată automat (problemă)

drapel jp

conform titlului, când introduc manual URL-ul site-ului meu web (exemple la sfârșitul subiectului), bara oblică de la sfârșitul domeniului este eliminată automat. Am redirecționarea SSL forțată și Apache ModRewrite activat .htaccess și acesta este conținutul fișierului (după cum puteți vedea, este generat automat din Prestashop CMS (1.7.x)):

    # ~~start~~ Nu eliminați acest comentariu, Prestashop va păstra automat codul în afara acestui comentariu când .htaccess va fi generat din nou
# .htaccess generat automat de soluția open-source de comerț electronic PrestaShop
# http://www.prestashop.com - http://www.prestashop.com/forums
 
<IfModule mod_rewrite.c>
<IfModule mod_env.c>
SetEnv HTTP_MOD_REWRITE Activat
</IfModule>
 
RewriteEngine activat
 
 
#Domeniu: www.example.com
RewriteRule . - [E=RESCRIERE BAZĂ:/]
RewriteRule ^api(?:/(.*))?$ %{ENV:REWITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]
 
# Imagini
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/ p/$1/$1$2$3.jpg [L]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ % {ENV:REWITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/ .+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L]
RewriteCond %{HTTP_HOST} ^www.example.com$
Rescrierea regulii ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0 -9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-] *)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [ L]
RewriteCond %{HTTP_HOST} ^www.example.com$
Rescrierea regulii ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a- zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1 $2$3$4$5$6$7$8.jpg [L]
RewriteCond %{HTTP_HOST} ^www.example.com$
Rescrierea regulii ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9] )(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/ $4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L]
RewriteCond %{HTTP_HOST} ^www.example.com$
Rescrierea regulii ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9] )([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p /$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV :REWITEBASE}img/c/$1$2$3.jpg [L]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L]
# AlphaImageLoader pentru IE și fancybox
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]
 
# Dispecer
RewriteCond %{REQUEST_FILENAME} -s [SAU]
RewriteCond %{REQUEST_FILENAME} -l [SAU]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ %{ENV:REWITEBASE}index.php [NC,L]
</IfModule>
 
AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
Aplicație AddType/font-woff .woff
AddType font/woff2 .woff2
<IfModule mod_headers.c>
<FilesMatch „\.(ttf|ttc|otf|eot|woff|woff2|svg)$”>
Set antet Acces-Control-Permite-Origine „*”
</FilesMatch>
</IfModule>
 
#Dacă modul de rescriere nu este activat
ErrorDocument 404 /index.php?controller=404
 
# ~~end~~ Nu eliminați acest comentariu, Prestashop va păstra automat codul în afara acestui comentariu când .htaccess va fi generat din nou

Exemple:

 - www.example.com/contacts -> https://www.example.comcontacts [GRÉS]   
 - example.com/contacts -> https://www.example.comcontacts [GRÉS]
 - http://example.com/contacts -> https://www.example.comcontacts [GRÉS]
   
 - https://example.com/contacts -> https://www.example.com/contacts [OK]
 - https://www.example.com/contacts -> https://www.example.com/contacts [OK]

Orice ajutor este apreciat.

drapel kz
Vă rugăm să includeți conținutul fișierului dvs. `.htaccess` în întrebarea dvs., nu ca un link extern. Includeți, de asemenea, exemplele relevante, în caz contrar, întrebarea așa cum a fost postată nu este o întrebare.
drapel kz
„Am redirecționarea SSL forțată” - Ce înseamnă asta? Unde este asta? Nu pare să fie în fișierul `.htaccess` legat. De fapt, nu pare să existe „redirecționări” în codul pe care l-ați postat? Din exemplele dvs. se pare că problema ar putea fi redirecționarea HTTP către HTTPS (adică „redirecționarea forțată SSL” - oricare ar fi aceasta).
drapel jp
@MrWhite, cu „redirecționare SSL forțată” mă refer la o funcție din CMS care permite utilizarea SSL pentru toate paginile site-ului. Ai dreptate, în acel .htaccess nu există redirecționare SSL pentru toate solicitările http. Crezi că ar putea fi problema? Cum ar trebui să-l adaug în .htaccess-ul meu?
Puncte:0
drapel kz

După cum s-a menționat în comentarii, nu există nimic în configurația pe care ați postat-o ​​care să provoace acest lucru. Nu există deloc redirecționări în configurația pe care ați postat-o. Aceasta este cel mai probabil o eroare de configurare în CMS (Prestashop).

Problema pare să fie cu redirecționarea HTTP către HTTPS, care elimină bara oblică de la începutul căii URL (imediat după numele gazdei).

Cu toate acestea, este posibil să puteți „rezolva” această problemă prin implementarea unei redirecționări HTTP către HTTPS (și non-www către www) în .htaccess - care apare înainte ca CMS-ul dvs. să poată face ceva. Deci, CMS-ul dvs. nu trebuie să redirecționeze solicitarea.

De exemplu, presupunând că aveți un server rezonabil standard, unde SSL este gestionat de serverul de aplicații (fără proxy SSL, cum ar fi Cloudflare etc.), atunci puteți face ceva de genul următor chiar în partea de sus a .htaccess dosar, înainte de # ~~start~~ cometariu.

# Redirecționează non-www către www + HTTPS
RewriteCond %{HTTP_HOST} ^(example\.com) [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L]

# Redirecționează HTTP către HTTPS (cererile rămase)
RewriteCond %{HTTPS} =dezactivat
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

NB: Testați mai întâi cu redirecționări 302 (temporare) pentru a evita potențialele probleme de cache.


ACTUALIZAȚI:

Am încercat să adaug rândurile pe care le-ai scris mai sus, dar nu s-a schimbat nimic.

Acest lucru ar implica că aveți un HTTP la HTTPS malformat în configurația serverului în sine (care se execută înainte .htaccess)

<VirtualHost *:80>
ServerName www.example.com
Redirect permanent / https://www.example.com
</VirtualHost>

Dacă aceasta este configurația dvs. reală, atunci vă lipsește bara oblică de pe adresa URL țintă! Acest lucru va duce la redirecționarea incorectă (lipsă bară oblică după domeniu) pe care o vedeți.

Ar trebui să fie:

Redirecționare permanentă / https://www.example.com/

Va trebui să vă asigurați că memoria cache a browserului este ștearsă înainte de testare, deoarece redirecționarea eronată va fi memorată în cache.

drapel jp
Multumesc mult pentru ajutor si pentru explicatii. Am încercat să adaug rândurile pe care le-ai scris mai sus, dar nu s-a schimbat nimic. Regulile au fost executate pentru că văd că procotolul HTTP este schimbat cu HTTPS, dar bara oblică rădăcină a site-ului web a fost totuși eliminată. În acest moment, ar trebui să fie o problemă de configurare CMS, nu?
drapel kz
@simone_meh Dar dacă solicitați adresa URL HTTPS direct, funcționează OK! Acest lucru ar implica că aveți un HTTP la HTTPS malformat în configurația serverului în sine (care se execută înainte de `.htaccess`)? Ai acces la configurația serverului?
drapel jp
sigur, sunt pe un VPS Linux. ``` ServerName www.example.com Redirecționare permanentă / https://www.example.com ``` Bara oblică care lipsește pe permanenta redirecționare ar putea fi problema?
drapel kz
@simone_meh Asta arată ca o eroare în redirecționarea serverului (cu excepția cazului în care lipsește ceva în comentariu). Vă lipsește o bară oblică finală pe adresa URL țintă!? Mi-am actualizat răspunsul.
drapel jp
Rezolvat! Mulțumesc mult!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.