Vì vậy, tôi thực sự đang cố gắng chuyển viết lại quy tắc từ apache đến NGINX nhưng có vẻ như tôi không thể chuyển hoàn toàn.
Trên thực tế, trên máy chủ của tôi, tôi có một trang đang chạy trên https://example.com
tên miền và /var/www/html/
đường dẫn trên máy chủ. Những gì tôi đang cố gắng làm là cài đặt tập lệnh tùy chỉnh trong thư mục con bên dưới var/www/html/thư mục con
đường dẫn và tên miền https://example.com/subdirectory
.
Vấn đề là các quy tắc viết lại không hoạt động và thậm chí không tìm thấy 404
lỗi đang xảy ra. Vui lòng giúp tôi.
Apache của tôi .htaccess
tập tin:
RewriteRule ^page/?$ pages/page.php [L]
RewriteRule ^about/?$ pages/about.php [L]
RewriteRule ^privacy-policy/?$ pages/privacy-policy.php [L]
RewriteRule ^contact/?$ pages/contact.php [L]
RewriteRule ^terms/?$ pages/tos.php [L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.+) - [PT,L]
RewriteRule ^sitemap-([0-9]+).xml$ part/sitemaps/sitemap-$1.xml [QSA,L]
RewriteRule ^(.*)/(.*)/(.*)/(.*)/?$ index.php?bank=$1&state=$2&district=$3&branch=$4 [QSA,L]
RewriteRule ^(.*)/(.*)/(.*)/?$ index.php?bank=$1&state=$2&district=$3 [QSA,L]
RewriteRule ^(.*)/(.*)/?$ index.php?bank=$1&state=$2 [QSA,L]
RewriteRule ^(.*)/?$ index.php?bank=$1 [QSA,L]
và Cấu hình NGINX
tập tin mà tôi đã cố gắng chuyển:
người phục vụ
{
nghe 80 default_server;
lắng nghe [::]:80 default_server;
gốc/var/www/html;
# Thêm index.php vào danh sách nếu bạn đang sử dụng PHP
chỉ mục index.php index.html;
máy chủ_tên máy chủ cục bộ;
địa điểm /
{
try_files $uri $uri/ =404;
}
# truyền tập lệnh PHP tới máy chủ FastCGI
vị trí ~ \.php$
{
bao gồm đoạn trích/fastcgi-php.conf;
# # Với php-fpm (hoặc các ổ cắm unix khác):
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
# # Với php-cgi (hoặc các ổ cắm tcp khác):
# fastcgi_pass 127.0.0.1:9000;
}
vị trí/thư mục con
{
thư mục gốc /var/www/html/thư mục con;
chỉ số index.php;
try_files $uri $uri/ /index.php$args$query_string
vị trí ~ ^/(.+)
{
}
vị trí/trang
{
viết lại ^/page/?$ /pages/page.php break;
}
vị trí / về
{
viết lại ^/about/?$ /pages/about.php break;
}
vị trí / quyền riêng tư
{
viết lại ^/privacy-policy/?$ /pages/privacy-policy.php break;
}
địa điểm/liên hệ
{
viết lại ^/contact/?$ /pages/contact.php break;
}
địa điểm/điều khoản
{
viết lại ^/terms/?$ /pages/tos.php break;
}
địa điểm /
{
nếu (-e $request_filename)
{
viết lại ^/sitemap-([0-9]+).xml$ /parts/sitemaps/sitemap-$1.xml break;
}
viết lại ^/(.*)/(.*)/(.*)/(.*)/?$ /index.php?bank=$1&state=$2&district=$3&branch=$4 break;
viết lại ^/(.*)/(.*)/(.*)/?$ /index.php?bank=$1&state=$2&district=$3 break;
viết lại ^/(.*)/(.*)/?$ /index.php?bank=$1&state=$2 break;
viết lại ^/(.*)/?$ /index.php?bank=$1 break;
}
vị trí ~ /thư mục con /(.+\.php)$
{
bao gồm đoạn trích/fastcgi-php.conf;
# Với php-fpm (hoặc các ổ cắm unix khác):
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
# Với php-cgi (hoặc các ổ cắm tcp khác):
# fastcgi_pass 127.0.0.1:9000;
}
}
}