Puncte:0

Redirecționează toate paginile către non www și o pagină către www

drapel cn

Vreau să redirecționez toate paginile mele interne (de exemplu: exemplu.com/despre) la versiunea lor non-www, dar vreau pagina mea de pornire (https://example.com) pentru a redirecționa către versiunea sa www (https://www.example.com).

Am căutat multe articole pe internet, dar nu a putut merge.

Dacă se setează ambele reguli, paginile interne sunt redirecționate bine, dar pagina de pornire este blocată într-o buclă.

Nu știu cum să codific, așa că vă rog, este o cerere dacă ați putea scrie codul pe care ar trebui să-l inserez în .htaccess fişier

În prezent, am setat toate paginile să redirecționeze către versiunile lor non-www (chiar și pagina de pornire) cu codul de mai jos:

<IfModule mod_rewrite.c>
RewriteEngine activat
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
</IfModule>
# ÎNCEPE Sitepad-ul
<IfModule mod_rewrite.c>
RewriteEngine Pornit
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
# END Sitepad
Puncte:0
drapel kz

Am căutat multe articole pe internet, dar nu a putut merge.

Probabil pentru că aceasta este o cerință ciudată. Aș fi surprins dacă ați găsi vreun cod pe care l-ați putea pur și simplu să copiați/lipiți care face acest lucru.

Cu toate acestea, presupunând că construiți adresa URL absolută corectă pentru toate link-urile dvs. interne (din moment ce nu trebuie să vă conectați intern la o adresă URL care redirecționează), atunci acest lucru este relativ trivial de implementat în .htaccess dacă înțelegeți directivele existente.

RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

Regex .* în RewriteRule model chibrituri Tot. Mai exact, se potrivește cu 0 sau mai multe din orice caracter, așa cum este indicat de * cuantificator. Se potrivește cu calea URL goală (adică „pagina de pornire”) și cu fiecare cale URL nevide (adică orice altceva).

Trebuie să modificați expresia regex de mai sus, astfel încât să se potrivească cu o cale URL negoală (adică totul, cu excepția paginii de pornire). Și creați o altă regulă (în cealaltă direcție) care se potrivește numai cu o cale URL goală.

(Acest lucru folosește faptul că mod_dir servește index.php pentru cererile către pagina de pornire, nu directivele mod_rewrite care urmează.)

Pentru a potrivi unul sau mai multe (adică cale URL nevide), puteți utiliza + (plus) cuantificator, în loc de * (stea/asterisc).

De exemplu:

# Redirecționează totul, cu excepția paginii de pornire (de la www la non-www)
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.+)$ https://example.com/$1 [L,R=301]

# Redirecționează numai pagina de pornire (de la non-www la www)
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^$ https://www.example.com/ [L,R=301]

Va trebui să ștergeți memoria cache a browserului înainte de testare, deoarece redirecționarea anterioară 301 (permanentă) care a redirecționat pagina de pornire de la www la non-www va fi memorată în cache de browser.

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

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.