Tệp .htaccess là một tệp cấu hình ở cấp thư mục, được hỗ trợ bởi máy chủ web Apache. Nó cho phép bạn thay đổi các thiết lập máy chủ web (như bật hoặc tắt các tính năng) cho một tài khoản cụ thể mà không ảnh hưởng đến cấu hình toàn cục của máy chủ.
Tệp này áp dụng các thiết lập của nó cho toàn bộ thư mục nơi nó được đặt, bao gồm tất cả các tệp và thư mục con bên trong thư mục đó. Bất kỳ thay đổi nào được thực hiện trong tệp .htaccess sẽ được áp dụng ngay lập tức mà không cần khởi động lại máy chủ.
Để tìm tệp .htaccess:
1. Truy cập vào tài khoản Spaceship của bạn >> chọn Hosting Manager trong Launchpad >> Quản lý bên cạnh một gói hosting >> Tệp và Lưu trữ >> Quản lý Tệp gần tên website.
2. Bạn sẽ được chuyển đến thư mục gốc của tên miền.
3. Nếu bạn cần chỉnh sửa tệp .htaccess cho tên miền, hãy tìm tệp .htaccess trong thư mục gốc của tên miền, nhấp chuột phải vào nó và chọn tùy chọn Chỉnh sửa :

LƯU Ý: Đảm bảo rằng "Hiển thị tệp ẩn (dotfiles)" đã được bật trong menu Cài đặt:

4. Nếu không có tệp .htaccess trong Trình quản lý tệp, bạn có thể tạo một tệp mới bằng nút + Tệp:

5. Bạn đã sẵn sàng thêm các quy tắc cấu hình của riêng mình và lưu lại.
Phương pháp này cho phép bạn chặn người dùng dựa trên địa chỉ IP hoặc tên miền của họ. Nó đặc biệt hữu ích để hạn chế quyền truy cập của những khách truy cập không mong muốn hoặc chỉ cho phép chủ sở hữu truy cập vào các khu vực nhất định của trang web, chẳng hạn như khu vực quản trị.
Để áp dụng các quy tắc chặn cụ thể, hãy tạo một tệp .htaccess với nội dung sau:
(Để cho phép mọi người khác truy cập và chặn người dùng có địa chỉ IP X.X.X.X)
<RequireAll>
Require all granted
Require not ip X.X.X.X
</RequireAll>
(Để chặn tất cả khách truy cập ngoại trừ các IP X.X.X.X và Y.Y.Y.Y cụ thể)
<RequireAll>
Require all denied
Require ip X.X.X.X
Require ip Y.Y.Y.Y
</RequireAll>
LƯU Ý: Không sử dụng các chỉ thị đã lỗi thời Allow, Deny và Order với chỉ thị mới Require này.
Mod_Rewrite xác định cách các trang web và URL được hiển thị cho khách truy cập.
Theo mặc định, Mod_Rewrite ánh xạ một URL tới đường dẫn hệ thống tệp tương ứng. Tuy nhiên, nó cũng có thể chuyển hướng một URL sang URL khác.
Trước khi thiết lập chuyển hướng, điều quan trọng là chọn loại chuyển hướng phù hợp nhất với nhu cầu của bạn:
Chuyển hướng vĩnh viễn (301): Chuyển hướng này gửi mã trạng thái 301, cho biết trang đã được chuyển vĩnh viễn. Nó được lưu vào bộ nhớ đệm của trình duyệt, báo hiệu cho các công cụ tìm kiếm và trình duyệt cập nhật URL trong cơ sở dữ liệu của họ. Đây là loại chuyển hướng phổ biến nhất.
Chuyển hướng tạm thời (302): Chuyển hướng này gửi mã trạng thái 302, cho biết việc chuyển là tạm thời. Trình duyệt sẽ không lưu chuyển hướng này vào bộ nhớ đệm, và mặc dù nó sẽ chuyển hướng khách truy cập và công cụ tìm kiếm, trang gốc vẫn sẽ tiếp tục được lập chỉ mục. Loại chuyển hướng này được khuyến nghị trừ khi bạn chắc chắn rằng URL sẽ không thay đổi trong tương lai.
Dưới đây là danh sách một số chuyển hướng phổ biến và hữu ích nhất có thể cấu hình thông qua tệp .htaccess:
Chuyển hướng vĩnh viễn từ example1.com sang example2.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example1\.com$
RewriteRule ^(.*)$ "http\:\/\/example2\.com/$1" [R=301,L]
Chuyển hướng tạm thời từ exampledomain1.com sang exampledomain2.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example1\.com$
RewriteRule ^(.*)$ "http\:\/\/example2\.com\/" [R=302,L]
LƯU Ý: Dưới đây là các ví dụ về chuyển hướng vĩnh viễn. Chuyển hướng tạm thời có thể được định nghĩa bằng cách thay [R=301,L] bằng [R=302,L] ở cuối đoạn mã (nếu cần).
Chuyển hướng từ example1.com/subfolder sang example2.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example1\.com$
RewriteRule ^subfolder/$ "http\:\/\/example2\.com\/" [R=301,L]
Chuyển hướng từ HTTP sang HTTPS cho example.com
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* https://example.com%{REQUEST_URI} [R,L]
hoặc
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
Chuyển hướng từ non-WWW sang WWW
đối với bất kỳ tên miền nào, .htaccess sẽ có hiệu lực:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
đối với một tên miền cụ thể:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
Chuyển hướng từ WWW sang non-WWW
đối với bất kỳ tên miền nào .htaccess sẽ có hiệu lực:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
đối với một tên miền cụ thể:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule (.*) http://example.com/$1 [R=301,L]
Chuyển hướng tất cả các trang example.com sang các trang domain.com tương ứng
RedirectMatch 301 ^/(.*)$ http://domain.com/$1
LƯU Ý: Tất cả tên trang phải trùng khớp trên cả hai tên miền, nếu không chuyển hướng sẽ dẫn đến thông báo "Không tìm thấy trang".
Chuyển hướng một trang sang URL mới
Redirect 301 /old_page.html http://www.domain.com/new_page.html
LƯU Ý: Kỹ thuật này có thể hữu ích để chuyển hướng một trang đã xóa sang lỗi 404, hoặc để điều chỉnh SEO sau khi cập nhật các tham chiếu nội dung.
Loại quy tắc này xác định các hạn chế bảo mật cho một thư mục hoặc thư mục con. Bạn có thể bảo vệ thư mục bằng mật khẩu để bất kỳ ai cố gắng truy cập sẽ được yêu cầu nhập tên người dùng và mật khẩu.
Để thiết lập bảo vệ này:
1. Tạo thư mục bạn muốn bảo vệ trong thư mục /home/cpanel_user/.htpasswds/ (ví dụ, cho domain.com/test, đường dẫn là .htpasswds/domain.com/test/).
2. Trong thư mục này, tạo một tệp passwd và thêm thông tin truy cập đã mã hóa bằng một trình tạo trực tuyến.
3. Thêm các chỉ thị sau vào tệp .htaccess:
AuthType Basic
AuthName "Directory Name"
AuthUserFile "/home/cpanel_user/.htpasswds/public_html/test/passwd"
require valid-user
Tính năng này cho phép bạn tạo các trang lỗi cá nhân hóa cho website của mình. Đây là một tùy chọn hữu ích vì nó cho phép bạn hiển thị thông báo lỗi phù hợp với giao diện website khi có URL bị hỏng. Điều này giúp tránh hiển thị lỗi mặc định '404 File Not Found’ và thay vào đó trả về một trang lỗi được thiết kế riêng với hướng dẫn giúp người dùng quay lại nội dung website, tránh gây nhầm lẫn.
Để thiết lập trang lỗi tùy chỉnh, hãy thêm đoạn văn bản sau vào tệp .htaccess:
ErrorDocument 404 /404.html
Dòng này hướng dẫn máy chủ web Apache tải tệp 404.html nằm ở thư mục gốc của tên miền mỗi khi xảy ra lỗi 404 (Không tìm thấy tệp).
LƯU Ý: Để tạo trang lỗi tùy chỉnh cho các lỗi khác (như 403 hoặc 500), chỉ cần thay 404 bằng mã lỗi tương ứng và /404.html bằng đường dẫn đến tệp lỗi tùy chỉnh của bạn.
Nếu bạn cần tạm thời vô hiệu hóa một số quy tắc hiện có, chẳng hạn để kiểm tra, bạn có thể dễ dàng chú thích chúng. Để làm điều này, chỉ cần thêm dấu thăng (#) ở đầu dòng.
Ngoài ra, bạn có thể vô hiệu hóa một dòng hoặc một khối dòng bằng cách chọn chúng và sử dụng phím tắt Ctrl + / .