File .htaccess là tệp rất quan trọng đối với trang web. Tuy nhiên, không phải ai cũng biết htaccess là gì, nhất là đối với các bạn mới bước chân vào mảng lập trình và SEO. Vậy tại sao file .htaccess lại quan trọng đến thế? Khi thao tác trên file .htaccess cần chú ý đến những điều gì? Cùng City IT tìm hiểu chi tiết trong nội dung bài viết dưới đây.
.htaccess là tệp có chức năng thay đổi cấu hình của máy chủ. File htaccess chỉ có tác dụng với các apache web server (máy chủ chạy apache). Nó có thể khởi động hoặc vô hiệu các chức năng web server cung cấp. Cụ thể, một số thao tác file htaccess làm được là chuyển hướng link, thu gọn địa chỉ, cho phép hoặc chặn truy cập,…
File .htaccess chỉ bao gồm phần đuôi định thuộc tính mà không có tên. Do đó, khi cấp quyền quản trị cho file này, đôi khi nó không được hiển thị. Các công cụ trợ giúp viết code phổ biến đều có thể thao tác với file .htaccess. Điểm đặc biệt, htaccess chỉ tuân theo quy tắc RE (Regular Expression). Quy tắc này không dễ nắm bắt nên bạn cần cẩn thận khi chỉnh sửa file .htaccess.
Nếu bạn không thành công, bạn sẽ gặp nhiều lỗi nghiêm trọng khi truy cập web. Trường hợp xấu nhất là web bạn sẽ bị sập. Do đó, bạn cần có một file dự phòng để tránh trường hợp không mong muốn.
File .htaccess cho ta một số lợi ích sau
Làm việc với file htaccess bạn cần lưu ý 3 điều:
Bạn truy cập thẳng vào folder chứa code của website đó bằng tài khoản quản trị hosting. Thường sẽ là ngay trong thư mục Public_html, đối với các add domain hoặc subdomain thì nó sẽ là folder tương ứng chứa code của website đó, và sau đó tạo file .htaccess với cấu hình như sau:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes…
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller…
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
folder chứa file .htaccess cho wordpress sẽ giống với laravel hay bất cứ loại mã nguồn nào khác nhưng cấu hình mặc định chuẩn của file sẽ như sau:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Dưới đây là những thông tin chi tiết về Htaccess, các bạn cùng tìm hiểu nhé!
WWW thường xuất hiện trong địa chỉ của các công ty tập đoàn. Nó tạo sự chuyên nghiệp. Để các blog cá nhân, web nhỏ,… cũng có sự chuyên nghiệp này, bạn thực hiện như sau:
// Thêm WWW vào URL
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
// Không theme WWW vào URL
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
Ngoài việc sử dụng file .htaccess bạn để thêm hoặc bỏ www bằng nhiều cách khác hãy xem hướng dẫn chi tiết tại bài viết:
Để hạn chế các User-agent không an toàn, bạn có thể dùng luật của htaccess để kiểm soát. Việc này sẽ điều hướng bạn từ http://mysite.com qua https://mysite.com với điều kiện bạn phải cài kết nối an toàn (SSL).
Để điều khiển lượng truy cập, bạn thêm các mã sau vào file:
#force SSL on entire site
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://mysite.com/$1 [R=301,L]
Khi chuyển tên domain hay chuyển file, bạn sẽ không muốn ảnh hưởng đến lượt truy cập hoặc thứ hạng trong kết quả tìm kiếm đúng không? Nếu vậy, bạn có thể dùng 301 Redirect trên file .htaccess.
Redirect 301 /old/old.htm http://domain.com/new.htm
// chuyển domain
RewriteEngine On
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L
Trong lúc sử dụng web, độc giả rất có thể chạm vào các lỗi 500, 401,… Đây là hiện tượng thường nhật do trang quá tải hay do thiết bị truy cập của khách. Để giảm sự khó chịu, bạn nên thiết kế trang báo lỗi đẹp mắt. Bạn dùng cú pháp sau để điều hướng họ đến trang bạn đã thiết kế.
ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php
Hotlink được gắn với những người đi sao chép hoặc spin bài của người khác. Hotlink giúp họ ký sinh trên web của bạn. Tức họ sử dụng tài nguyên, dữ liệu trong trang của bạn để làm nội dung cho website của họ
Options +FollowSymlinks
#No hotlink
RewriteEngine On
RewriteCond %{HTTP_REFERER}!^$
RewriteCond %{HTTP_REFERER}!^http://(www.)?domain.com/[nc]
RewriteRule .*.(gif|jpg|png)$ http://domain.com/images/nohotlink.gif[nc]
Khi duyệt web, có phải bạn hiếm khi thấy đuôi .php không? Đây là đuôi thể hiện sự chưa chuyên nghiệp, nên mọi người cố gắng loại bỏ nó đi. Sau đây là cách thức thực hiện:
RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]
Lý do cần chuyển .php thành .html là để tối ưu SEO, cách đọc đuôi .html cũng “sang” hơn. Một lý do khác, cho người đọc cảm giác an toàn khi nhấp vào link. Vì nếu họ thấy thành phần lạ trong link, họ sẽ chần chừ không nhấp vào.
RewriteRule ^(.*).html$ $1.php [R=301,L]
Thêm “/” vào cuối URL sẽ giúp con bot google nhận diện bài viết của bạn là unique, không copy. Vì vậy tốt cho SEO, google sẽ đánh giá chất lượng web cao hơn.
#Thêm / vào cuối URL
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !#
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]
Các user-agent nước ngoài đôi khi spam nội dung, hay bình luận tiêu cực, công kích người khác,… Vì vậy bạn cần loại bỏ những tài khoản này bằng cách
allow from all
deny from 192.168.1.123
deny from 192.168
Nếu có ai đó muốn bẻ khóa bảo mật, truy cập vào file riêng tư trong trang của bạn, bạn cần thực hiện mã lệnh sau. Kết quả nó sẽ trả về lỗi 403 và đưa tài khoản này trở lại trang chủ.
# Bảo vệ file dùng .htaccess
<files .htaccess=””>
order allow,deny
deny from all
</files>
Cách tăng tính bảo mật truyền thống đó là đặt mật khẩu. Để bảo vệ các tệp và thư mục, bạn nên đặt mật khẩu mạnh, tức chứa các ký tự đặc biệt, in hoa, số,…
Để đặt password cho chúng bạn thao tác như bên dưới:
#Đặt Pass cho thư mục
resides
AuthType basic
AuthName “Thư mục này đã được bảo vệ”
AuthUserFile /home/path/.htpasswd
AuthGroupFile /dev/null
Require valid-user
# Đặt Pass cho file
<files secure.php=””>
AuthType Basic
AuthName “Prompt”
AuthUserFile /home/path/.htpasswd
Require valid-user
</files>
Thường thì các văn bản dùng dấu “-” sẽ dễ nhìn, đọc và phân tích hơn so với dùng dấu “_”. Hơn nữa, dấu “-” dễ tạo cảm giác thân thuộc hơn nhiều.
Lưu ý: cả hai dấu “-” và “_” đều thay thế dấu cách, không có tính chất khác biệt.
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule !.(html|php)$ – [S=4]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4-$5 [E=uscor:Yes]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4 [E=uscor:Yes]
RewriteRule ^([^_]*)_([^_]*)_(.*)$ $1-$2-$3 [E=uscor:Yes]
RewriteRule ^([^_]*)_(.*)$ $1-$2 [E=uscor:Yes]
RewriteCond %{ENV:uscor} ^Yes$
RewriteRule (.*) http://domain.com/$1 [R=301,L]
File wp-config.php nhiều thông tin cơ mật về database username, pass… Để ngăn các tài khoản lạ truy cập vào file này, ta cần nhập mã lệnh như sau:
# Bảo mật file wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>
Không phải file nào cũng nên được tải lên web. Nếu bạn không quy định, tất cả các file đều xem là được phép tải, việc này gây tốn tài nguyên, chậm web của bạn rất nhiều.
# Giới hạn đến 10mb
LimitRequestBody 10240000
Bật tính năng nén của file Gzip giúp bạn tải dữ liệu một cách trơn tru hơn. Hỗ trợ cải thiện tốc độ làm việc cho web server dễ dàng hơn.
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
Điều chỉnh trực tiếp trên file htaccess để bỏ từ trông có vẻ thiếu chuyên nghiệp “category” có địa chỉ của web đi bằng cách:
RewriteRule ^category/(.+)$ http://domain.com/$1 [R=301,L]
Đôi khi bạn không thích tên miền hiện tại, và muốn chuyển qua tên miền (domain) mới. Bạn cần điều hướng tài khoản truy cập domain cũ qua domain mới. Việc này nhằm không mất lượng traffic và thứ hạng cao trên google mà bạn gầy dựng bấy lâu.
Nếu bạn thao tác chỉnh sửa đúng thì kết quả là bạn sẽ kéo lượng traffic qua cho tên miền mới. Nếu không ngay cả trang miền cũ của bạn cũng sẽ có nguy cơ bị rớt hạng trên kết quả tìm kiếm.
Để điều hướng tài khoản mà không làm thay đổi cấu hình web, bạn cần thực hiện nhập đoạn mã sau vào file htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com$
RewriteRule (.*)$ http://www.newdomain.com/$1 [R=301,L]
</IfModule>
Làm sao hiện file .htaccess bị ẩn?
Trả lời:
Bạn cần chỉnh sửa file htaccess nhưng không tìm thấy nó. Đấy rất có thể đã bị ẩn đi trong cPanel File Manager. Thực hiện tìm kiếm bằng cách:
Bước 1: Bạn vào mục Settings.
Bước 2: Truy cập vào Show Hidden Files
Bước 3: Click vào mục Save.
Bước 4: Reload trang và kéo xuống bạn sẽ thấy file cần tìm.
Vì sao không thể thay đổi file .htaccess bằng Plugin SEO?
Trả lời:
Lý do bạn gặp vấn đề này rất có thể là nhà cung cấp không cấp quyền truy cập cho bạn nữa. Bạn cần phải tham khảo phương pháp FTP để xử lý.
Qua những thông tin trên có thể thấy .htaccess rất quan trọng. File này sẽ giúp điều chỉnh cấu hình máy chủ để tăng chất lượng quản lý trang web. Với file này, việc bảo mật, cấp quyền và giải quyết các yêu cầu của web sẽ trở nên tối ưu hơn. Hy vọng thông tin trong bài của City IT sẽ giúp cácbạn biết thêm một khái niệm quan trọng đối với SEO web. Nếu bạn còn cập nhật thêm những thông tin hữu ích về công nghệa, hãy theo dõi và đón đọc những bài viết tiếp theo của City IT nhé.