.htaccess Viết lại quy tắc cho các thư mục con không xác định
tôi phải đối mặt với vấn đề sau:
Cấu trúc thư mục của tôi trong máy chủ là: public_html / project /
Chế độ xem dạng cây: dạng xem cấu trúc thư mục dạng cây
Trong thư mục public_html có một tệp .htaccess .
Bên trong thư mục dự án, các đối tác của tôi sẽ tạo thư mục numerus với trang đích bên trong (giả sử chỉ là tệp index.php)
Các quy tắc viết lại mà tôi cố gắng áp dụng là ngôn ngữ và tham số url tiền tệ .
Vì vậy, ví dụ url này: https://www.example.com/projects/whatever-project-name/index.php?lang=en¤cy=eur
phải được dịch sang: https://www.example.com/projects/whatever-project-name/en/eur/
Ngoài ra, biến đơn vị tiền tệ là tùy chọn. (Biến ngôn ngữ là biến bắt buộc)
Vì vậy, các url cũng có thể giống như thế này: https://www.example.com/projects/whatever-project-name/en/
Tôi đang tìm kiếm và cố gắng (và đang khóc) vài ngày nay để giải quyết vấn đề này. Giải pháp duy nhất gần với tôi là: RewriteRule cho thư mục không xác định
nhưng tôi đã không quản lý để làm cho nó hoạt động.
Những gì tôi có cho đến bây giờ (nhưng nó không hoạt động bình thường) là:
RewriteEngine On
RewriteRule ^(.*/)?/([a-zA-Z0-9]{2,3})/([a-zA-Z0-9-]+)/?$ projects/$1index.php?lang=$2¤cy=$3
RewriteRule ^(.*/)?/([a-zA-Z0-9]{2,3})/?$ projects/$1index.php?lang=$2[L]
Trả lời
Dựa trên các mẫu hiển thị của bạn, bạn có thể vui lòng thử làm theo không. Hãy đảm bảo rằng bạn xóa bộ nhớ cache của trình duyệt trước khi kiểm tra các URL của mình.
RewriteEngine ON
##With currency variable in URI.
RewriteCond %{REQUEST_URI} ^/projects/([\w-]+)/en/([\w-]+)/?$ [NC] RewriteRule ^(.*)$ projects/%1/index.php?lang=en¤cy=%2 [L]
##Without currency variable in URI.
RewriteCond %{REQUEST_URI} ^/projects/([\w-]+)/en/?$ [NC] RewriteRule ^(.*)$ projects/%1/index.php?lang=en [L]