Tình huống
Trên toàn bộ tên miền, chúng tôi muốn các URL ẩn phần mở rộng tệp và xóa dấu gạch chéo , độc lập với chính tên miền (như trong, hoạt động trên bất kỳ tên miền nào).
Mẫu cấu trúc thư mục của chúng tôi
Chúng tôi không sử dụng các tệp chỉ mục. * Ngoại trừ trang chủ.
- /
- /index.php
- /account.php
- /tài khoản
- /subcrip.php
- /login.php
- /đăng nhập
- /reset-password.php
Mục đích
Một số ví dụ về cách các tệp này có thể được yêu cầu và cách chúng nhìn trong trình duyệt:
/
vàindex.php
->mydomain.com
(nghĩa đen chỉ là tên miền trần)./account.php
hoặc/account/
hoặc/account
->mydomain.com/account
/account/subscriptions.php
hoặc/account/subscriptions/
hoặc/account/subscriptions
->mydomain.com/account/subscriptions
Như bạn có thể thấy, có một số cách để truy cập mỗi trang web, nhưng cho dù bạn sử dụng cách nào trong 2 hoặc 3 cách để đến đó, nó chỉ hiển thị một URL ưa thích trong trình duyệt.
Câu hỏi
Làm thế nào điều này được thực hiện với .htaccess bằng mod_rewrite?
Tôi đã đập đầu vào tường cố gắng tìm ra điều này, nhưng nói chung, dòng chảy viết lại dường như là như thế này:
- Chuyển hướng ngoài 301 (
mydomain.com/account/
->mydomain.com/account
) - Nối thêm nội bộ .php (
mydomain.com/account
->mydomain.com/account.php
)
Tôi đã làm việc này cả ngày, đọc hàng ngàn dòng tài liệu và cấu hình văn bản, và đã thử vài chục lần ... Tôi nghĩ rằng nhiều bộ não hơn về điều này sẽ giúp ích rất nhiều.
CẬP NHẬT
Chúng tôi tìm thấy một câu trả lời cho câu hỏi của chúng tôi (xem bên dưới).
/account/
sẽ viết lại /account
và thực sự cung cấp /account.php
, không /account/index.php
.