Rewrite và htaccess: sự khác biệt và lưu ý khi chuyển từ NGINX và Apache sang ServBay
Thông tin nền
Rewrite, còn gọi là URL Rewrite, URL tái viết hoặc giả lập tĩnh, là một kỹ thuật tái viết URL động. Nó được sử dụng để tái viết URL mà người dùng yêu cầu sang một URL khác, nhằm tạo ra cấu trúc URL thân thiện hơn, nâng cao hiệu quả SEO hoặc đơn giản hóa đường dẫn URL phức tạp. Kỹ thuật này được áp dụng rộng rãi trong phát triển web, có thể che giấu đường dẫn tập tin thực, thực hiện chuẩn hóa URL, và tăng cường tính bảo mật và khả năng bảo trì của trang web. Thông qua URL tái viết, nhà phát triển có thể tạo ra những URL dễ đọc và dễ nhớ hơn, qua đó cải thiện trải nghiệm người dùng và hiệu quả chỉ mục của công cụ tìm kiếm.
Hỗ trợ của NGINX và Apache
ServBay sắp hỗ trợ NGINX, hãy chú ý các thông báo chính thức.
Máy chủ web đi kèm của ServBay là Caddy, nổi tiếng với cấu hình đơn giản và HTTPS tự động. ServBay đã cấu hình mặc định các quy tắc Rewrite, người dùng thường không cần phải cấu hình thêm. Đối với hầu hết các framework PHP và hệ thống CMS, ServBay đã sẵn sàng sử dụng mà không cần cấu hình thêm. Tuy nhiên, đối với những người dùng chuyển từ NGINX và Apache sang Caddy, việc hiểu các điểm khác biệt và lưu ý là rất quan trọng. Bài viết này sẽ giới thiệu chi tiết về những nội dung này.
Lưu ý quan trọng
ServBay đã cấu hình sẵn các quy tắc Rewrite, người dùng thường không cần phải cấu hình thêm. Đối với hầu hết các framework PHP và hệ thống CMS như WordPress, Laravel, Symfony, ServBay đã sẵn sàng sử dụng, không cần cấu hình thêm quy tắc Rewrite.
Để biết thêm thông tin về chuyển đổi, hãy tham khảo
Quy tắc Rewrite sẵn sàng sử dụng
Máy chủ Caddy của ServBay đã được cấu hình sẵn các quy tắc Rewrite, người dùng thường không cần phải cấu hình thêm. Đối với hầu hết các framework PHP và hệ thống CMS như WordPress, Laravel, Symfony, ServBay đã sẵn sàng sử dụng, không cần cấu hình thêm quy tắc Rewrite. Nếu bạn là người dùng chuyển từ NGINX hoặc Apache, hãy tiếp tục đọc để biết thêm về sự khác biệt và lưu ý của các quy tắc Rewrite.
Giới thiệu quy tắc Rewrite
Quy tắc Rewrite được sử dụng để tái viết URL yêu cầu thành một URL khác, thường dùng cho tối ưu hóa SEO, làm đẹp URL và kiểm soát truy cập. Các máy chủ web khác nhau có cách cấu hình quy tắc Rewrite khác nhau.
htaccess của Apache
Apache sử dụng tập tin .htaccess
để cấu hình quy tắc Rewrite. Tập tin .htaccess
thường được đặt trong thư mục gốc hoặc các thư mục cụ thể của website để áp dụng cho thư mục đó và các thư mục con.
Cách dùng cơ bản
Dưới đây là một ví dụ cơ bản của tập tin .htaccess
:
RewriteEngine On
# Chuyển hướng tất cả yêu cầu đến index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]
2
3
4
5
6
Quy tắc Rewrite của NGINX
NGINX sử dụng nginx.conf
hoặc tập tin cấu hình site để cấu hình quy tắc Rewrite. Quy tắc Rewrite thường được đặt trong khối server
hoặc location
.
Cách dùng cơ bản
Dưới đây là một ví dụ cơ bản của tập tin cấu hình NGINX:
server {
listen 80;
server_name servbay.demo;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
Quy tắc Rewrite của Caddy
Caddy sử dụng Caddyfile
để cấu hình quy tắc Rewrite. Cú pháp của tập tin cấu hình Caddy đơn giản và dễ đọc.
Cách dùng cơ bản
Dưới đây là một ví dụ cơ bản của Caddyfile:
servbay.demo {
root * /Applications/ServBay/www/demo
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
file_server
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
rewrite @notStatic /index.php
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Lưu ý khi chuyển đổi
Chuyển từ Apache sang Caddy
Hãy tham khảo tài liệu Cách chuyển website Apache sang ServBay
Quy tắc Rewrite:
- Quy tắc Rewrite của Apache được cấu hình trong tập tin
.htaccess
, còn Caddy cấu hình trongCaddyfile
. - Chuyển đổi quy tắc Rewrite của Apache sang quy tắc Rewrite của Caddy.
- Quy tắc Rewrite của Apache được cấu hình trong tập tin
Cấu trúc thư mục:
- Tập tin
.htaccess
của Apache có thể đặt ở bất kỳ thư mục nào, trong khi đó quy tắc Rewrite của Caddy cần được đặt trongCaddyfile
.
- Tập tin
Module và chỉ thị:
- Apache có nhiều module và chỉ thị, Caddy cũng có chức năng tương tự, nhưng cách cấu hình khác nhau. Cần thực hiện chuyển đổi dựa vào tài liệu của Caddy.
Chuyển từ NGINX sang Caddy
Hãy tham khảo tài liệu Cách chuyển website NGINX sang ServBay
Quy tắc Rewrite:
- Quy tắc Rewrite của NGINX được cấu hình trong
nginx.conf
hoặc tập tin cấu hình site, còn Caddy cấu hình trongCaddyfile
. - Chuyển đổi quy tắc Rewrite của NGINX sang quy tắc Rewrite của Caddy.
- Quy tắc Rewrite của NGINX được cấu hình trong
Cấu trúc tập tin cấu hình:
- Cấu trúc tập tin cấu hình của NGINX khá phức tạp, trong khi
Caddyfile
của Caddy có cấu trúc đơn giản và trực quan.
- Cấu trúc tập tin cấu hình của NGINX khá phức tạp, trong khi
Module và chỉ thị:
- NGINX có nhiều module và chỉ thị, Caddy cũng có chức năng tương tự nhưng cách cấu hình khác nhau. Cần thực hiện chuyển đổi dựa vào tài liệu của Caddy.
Tóm tắt
Khi chuyển từ Apache và NGINX sang Caddy, cần chú ý đến sự khác biệt về cách cấu hình quy tắc Rewrite và cấu trúc tập tin cấu hình. Cú pháp tập tin cấu hình của Caddy đơn giản và dễ đọc, đã cấu hình sẵn các quy tắc Rewrite, người dùng thường không cần cấu hình thêm. Hy vọng bài viết này sẽ giúp bạn trong quá trình chuyển đổi.