Puncte:1

After installing script all subdomains go to the main domain

drapel us

I have a main domain www.example.com.

and the following subdomains under the main domain

support.example.com
test.example.com

Previously both subdomains are working fine.

But after installing a PHP script on the main domain, only the main domain is working and all subdomains are going to main domain.

After checking .htaccess file I found this code:

RewriteEngine  on  
RewriteBase /  
RewriteCond %{THE_REQUEST} /(.+?)\.php[\s?] [NC]  
RewriteRule ^ %1 [R=301,L,NE]  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteCond %{DOCUMENT_ROOT}/$1.php -f  
RewriteRule ^(.+?)/?$ $1.php [L]  
RewriteCond %{HTTPS} off [OR]  
RewriteCond %{HTTP_HOST} !^www\. [NC]  
RewriteRule (.*) https://www.example.com%{REQUEST_URI} [R=301,L]  

IndexIgnore *   

Is this related to the not working subdomains?

drapel kz
Cum anume „nu funcționează” subdomeniile? „toate subdomeniile vor fi direcționate către domeniul principal” - vrei să spui că acestea afișează același conținut ca și domeniul principal sau sunt redirecționate extern către domeniul principal? Unde indică subdomeniile pe sistemul de fișiere în raport cu domeniul principal. Instalarea unui „script” nu poate schimba DNS-ul, așa că presupun că subdomeniile fie indică către același loc, fie poate către un subdirector?
srisree avatar
drapel us
Bună, domnule White toate subdomeniile sunt redirecționate extern către domeniul principal subdomeniul a indicat un director în public_htmnl de exemplu subdomeniul este suport https://support.mandomain.com este adresa URL am instalat si joomla dar după instalarea unui script în maindomain.com a fost schimbat am încercat să deschid https://support.mandomain.com din browser, merge la https://maindomain.com toate fișierele din directorul subdomeniului sunt acolo a creat un alt subdomeniu de testare. https://testing.mandomain.com mergând și la https://maindomain.com subdomeniul suport indicat către public_html/support
drapel kz
Ai încercat sugestia pe care am postat-o ​​în răspunsul meu? Cu toate acestea, dacă aveți Joomla instalat într-un subdirector (la care indică subdomeniul), atunci acesta ar trebui să aibă propriul fișier `.htaccess` cu directive mod_rewrite (necesare pentru controlerul frontal Joomla) și acest lucru va suprascrie directivele din părintele ` .htaccess` (care aparține domeniului principal) - deci directivele postate mai sus nu ar trebui să afecteze subdomeniul `suport` care indică site-ul Joomla.
drapel kz
Cu toate acestea, cu excepția cazului în care subdirectorul `testing` (la care indică subdomeniul `testing`) are și propriul fișier `.htaccess`, atunci directivele de mai sus vor afecta subdomeniul `testing` (așa cum este menționat în răspunsul meu).
drapel kz
Cu toate acestea, în comentariul tău de mai sus, afirmi că cererea va ajunge la `https://maindomain.com`, dar directivele postate mai sus redirecționează solicitările către `https://www.maindomain.com` (adică, `www` subdomeniu) - vă rugăm să clarificați. În caz contrar, simpla instalare a unui „script PHP” în domeniul principal nu poate interfera cu subdomeniile (cu excepția directivelor `.htaccess` dintr-un director părinte), cu excepția cazului în care procesul de instalare a schimbat subdirectoarele `suport` și `testare` într-un fel?
drapel kz
(Sfat: Folosiți backtick-uri pentru a înconjura codul în linie și adresele URL în comentarii. „ca aceasta”)
Puncte:0
drapel kz
RewriteCond %{HTTPS} off [SAU]  
RewriteCond %{HTTP_HOST} !^www\. [NC]  
RewriteRule (.*) https://www.example.com%{REQUEST_URI} [R=301,L]

Nu ați precizat exact ce se întâmplă sau unde indică subdomeniile, așa că ar putea apărea și alte probleme aici.

Cu toate acestea, dacă subdomeniile dumneavoastră indică aceeași zonă a sistemului de fișiere (sau poate un subdirector) ca și domeniul principal, atunci regula de mai sus va redirecționa toate subdomeniile către www.example.com - deci subdomeniul este „pierdut”.

În funcție de cerințele dvs., puteți rezolva acest lucru doar verificând exemplu.com în loc de !^www\. și împărțirea redirecționării HTTP către HTTPS în propria sa regulă. De exemplu:

# HTTP la HTTPS (inclusiv subdomenii)
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# Redirecționare canonică non-www către www numai pentru domeniul principal
RewriteCond %{HTTP_HOST} ^(example\.com)\.?$ [NC]  
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L]

Va trebui să ștergeți memoria cache a browserului înainte de a testa. (De preferință testați cu 302 - temporare - redirecționări pentru a evita potențialele probleme de cache.)

Cu toate acestea, directivele sunt, de asemenea, în ordine greșită (acest lucru nu are nimic de-a face cu problema subdomeniului). Redirecționările canonice (mai sus) trebuie să meargă inainte de rescrierile interne. Deci, dvs .htaccess fișierul ar trebui să fie ordonat astfel:

IndexIgnora *

RewriteEngine Pornit  
RewriteBase /

# HTTP către HTTPS (inclusiv subdomenii)
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# Redirecționare canonică non-www către www numai pentru domeniul principal
RewriteCond %{HTTP_HOST} ^(example\.com)\.?$ [NC]  
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L]

# Eliminați extensia „.php” de pe adresa URL solicitată
RewriteCond %{THE_REQUEST} \s/(.+)\.php[\s?] [NC]  
RewriteRule ^ /%1 [R=301,L,NE]  

# Solicitare de rescrie internă pentru a adăuga extensia „.php”.
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteCond %{DOCUMENT_ROOT}/$1.php -f  
RewriteRule ^(.+?)/?$ $1.php [L]

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.