Điểm:0

RewriteRule dựa trên ngôn ngữ như mysite.com/en/ trong .htaccess

lá cờ us

Tôi đang cố gắng viết các lệnh chuyển hướng trong .htaccess để chuyển tiếp nội bộ tất cả các yêu cầu của người dùng như thế này:

  • Mọi yêu cầu trong thư mục ngôn ngữ sẽ chuyển hướng đến tệp được yêu cầu bằng chuỗi truy vấn ngôn ngữ:
example.com/en/contact.php -> example.com/contact.php?lang=vi
  • Chuyển hướng bất kỳ yêu cầu nào không có đường dẫn ngôn ngữ sang thư mục ngôn ngữ mặc định như thế này:
example.com -> example.com/vi
  • Xóa dấu gạch chéo nếu địa chỉ được nhập cùng với nó:
example.com/en/ đến example.com/en
  • Đối với các dự án thư mục, mọi yêu cầu sẽ dẫn đến tệp view-project.php với các chuỗi truy vấn tương ứng:
example.com/en/projects/test -> example.com/view-project.php?lang=en&path=test

Đây là nỗ lực của tôi, nhưng nó không hoạt động nếu không có dấu gạch chéo theo yêu cầu như: http://www.example.com/de và không chuyển hướng http://www.example.com vào một thư mục ngôn ngữ mặc định.

Viết LạiEngine Trên

RewriteRule ^(en|de)/(.*)$ $2?lang=$1 [L,QSA,NC]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^projects/([^/\.]+)/?$ view-project.php?path=$1 [QSA,L]

Làm thế nào tôi có thể đạt được điều này?

Đây có thể là một bản sao và tôi xin lỗi vì điều đó. Tôi đã tìm kiếm khắp nơi và đọc khoảng 100 bài đăng, nhưng tôi không tìm thấy thứ mình đang tìm kiếm.

vidarlo avatar
lá cờ ar
Vì vậy, example.com/de/ hoạt động, nhưng không phải example.com/de? Chỉ để làm cho nó hoàn toàn rõ ràng.
denoise avatar
lá cờ us
@vidarlo chính xác
lá cờ kz
Để làm rõ, ngôn ngữ "thư mục" không phải là một thư mục vật lý? "Mọi yêu cầu trong một thư mục ngôn ngữ" - đây thực sự là mọi yêu cầu (theo chỉ thị của bạn) hay chỉ các tệp `.php` tồn tại ở đường dẫn URL sau? Còn tài nguyên tĩnh (CSS, JS, hình ảnh, v.v.) thì sao? Có phải chúng cũng nằm trong một "thư mục" ngôn ngữ không? Hay họ nên bị loại trừ? "Chuyển hướng bất kỳ yêu cầu nào không có đường dẫn ngôn ngữ" - nghĩa đen là "bất kỳ yêu cầu nào"? Không có ngoại lệ? Còn tài nguyên tĩnh thì sao?
lá cờ kz
"Thêm dấu gạch chéo" - chỉ sau "thư mục ngôn ngữ" (theo ví dụ của bạn) hoặc điều này nên chung chung hơn (mặc dù từ các ví dụ khác của bạn, tôi không nghĩ điều này có thể chung chung hơn). Yêu cầu `/en/` có nên được viết lại thành `index.php` không? Trong ví dụ của bạn, bạn đang viết lại thành `?lang=XX` theo nghĩa đen (không hoàn toàn là một điểm cuối hợp lệ), điều này yêu cầu mod_dir đưa ra một yêu cầu phụ cho `DirectoryIndex` (không được đặt rõ ràng ở đây, vì vậy không được đảm bảo để làm việc với mã như đã đăng).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.