Điểm:1

After installing script all subdomains go to the main domain

lá cờ 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?

lá cờ kz
Làm thế nào chính xác là các tên miền phụ "không hoạt động"? "tất cả các tên miền phụ sẽ chuyển sang tên miền chính" - ý bạn là chúng đang hiển thị cùng một nội dung với tên miền chính hoặc đang được chuyển hướng ra bên ngoài đến tên miền chính? Các tên miền phụ trỏ đến đâu trên hệ thống tệp liên quan đến tên miền chính. Cài đặt "tập lệnh" không thể thay đổi DNS, vì vậy tôi cho rằng các tên miền phụ đang trỏ đến cùng một vị trí hoặc có thể là một thư mục con?
srisree avatar
lá cờ us
Xin chào MrWhite tất cả các tên miền phụ được chuyển hướng bên ngoài đến tên miền chính tên miền phụ được trỏ đến một thư mục trong public_htmnl ví dụ tên miền phụ là hỗ trợ https://support.maindomain.com là url tôi cũng đã cài đặt joomla nhưng sau khi cài đặt một tập lệnh trong maindomain.com, nó đã bị thay đổi đã cố mở https://support.maindomain.com từ trình duyệt, nó sẽ truy cập https://maindomain.com tất cả các tệp trong thư mục tên miền phụ đều ở đó đã tạo một thử nghiệm tên miền phụ khác. https://testing.maindomain.com cũng sẽ truy cập https://maindomain.com tên miền phụ hỗ trợ được trỏ đến public_html/support
lá cờ kz
Bạn đã thử gợi ý tôi đã đăng trong câu trả lời của mình chưa? Tuy nhiên, nếu bạn đã cài đặt Joomla trong một thư mục con (mà tên miền phụ trỏ đến) thì thư mục này sẽ có tệp `.htaccess` của riêng nó với các lệnh mod_rewrite (cần thiết cho bộ điều khiển phía trước Joomla) và điều này sẽ ghi đè các lệnh trong thư mục gốc ` Tệp .htaccess` (thuộc về miền chính) - vì vậy các lệnh được đăng ở trên sẽ không ảnh hưởng đến miền phụ `support` trỏ đến trang web Joomla.
lá cờ kz
Tuy nhiên, trừ khi thư mục con `testing` (mà miền con `testing` trỏ tới) cũng có tệp `.htaccess` của riêng nó, thì các lệnh trên sẽ ảnh hưởng đến miền con `testing` (như đã đề cập trong câu trả lời của tôi).
lá cờ kz
Tuy nhiên, trong nhận xét của bạn ở trên, bạn nói rằng yêu cầu sẽ tới `https://maindomain.com`, nhưng các lệnh được đăng ở trên lại chuyển hướng yêu cầu tới `https://www.maindomain.com` (tức là `www` tên miền phụ) - vui lòng làm rõ. Mặt khác, chỉ cần cài đặt một "tập lệnh PHP" trong miền chính sẽ không thể can thiệp vào các miền phụ (ngoại trừ các lệnh `.htaccess` trong thư mục mẹ), trừ khi quá trình cài đặt đã thay đổi các thư mục con `support` và `testing` theo một cách nào đó?
lá cờ kz
(Mẹo: Sử dụng dấu gạch ngược để bao quanh mã nội tuyến và URL trong nhận xét. `like this`)
Điểm:0
lá cờ kz
RewriteCond tắt %{HTTPS} [OR]  
RewriteCond %{HTTP_HOST} !^www\. [NC]  
RewriteRule (.*) https://www.example.com%{REQUEST_URI} [R=301,L]

Bạn chưa nêu chính xác điều gì đang xảy ra hoặc nơi các tên miền phụ đang trỏ đến, vì vậy có thể có các vấn đề khác ở đây.

Tuy nhiên, nếu tên miền phụ của bạn trỏ đến cùng một khu vực của hệ thống tệp (hoặc có thể là thư mục con) làm tên miền chính thì quy tắc trên sẽ chuyển hướng tất cả tên miền phụ đến www.example.com - vì vậy tên miền phụ bị "mất".

Tùy thuộc vào yêu cầu của bạn, bạn có thể giải quyết vấn đề này bằng cách chỉ kiểm tra ví dụ.com thay vì !^www\. và tách chuyển hướng HTTP sang HTTPS thành quy tắc riêng. Ví dụ:

# HTTP sang HTTPS (bao gồm cả tên miền phụ)
Viết lại Cond %{HTTPS} tắt
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# Chuyển hướng không phải www sang www theo chuẩn Canonical chỉ dành cho tên miền chính
RewriteCond %{HTTP_HOST} ^(example\.com)\.?$ [NC]  
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L]

Bạn sẽ cần xóa bộ nhớ cache của trình duyệt trước khi thử nghiệm. (Tốt nhất nên thử nghiệm với chuyển hướng 302 - tạm thời - để tránh các sự cố tiềm ẩn về bộ nhớ đệm.)

Tuy nhiên, các lệnh cũng sai thứ tự (điều này không liên quan gì đến vấn đề tên miền phụ). Các chuyển hướng chính tắc (ở trên) cần phải đi trước nội bộ viết lại. Vậy bạn .htaccess thay vào đó, tệp nên được sắp xếp như thế này:

Chỉ mụcBỏ qua *

Viết LạiEngine Trên  
viết lại cơ sở /

# HTTP sang HTTPS (bao gồm cả tên miền phụ)
Viết lại Cond %{HTTPS} tắt
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# Chuyển hướng không phải www sang www theo chuẩn Canonical chỉ dành cho tên miền chính
RewriteCond %{HTTP_HOST} ^(example\.com)\.?$ [NC]  
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L]

# Xóa phần mở rộng ".php" trên URL được yêu cầu
RewriteCond %{THE_REQUEST} \s/(.+)\.php[\s?] [NC]  
RewriteRule ^ /%1 [R=301,L,NE]  

# Yêu cầu viết lại nội bộ để thêm phần mở rộng ".php"
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteCond %{DOCUMENT_ROOT}/$1.php -f  
RewriteRule ^(.+?)/?$ $1.php [L]

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.