Điểm:0

Xóa cả index.php và phần mở rộng tệp trên các trang php khác bằng .htaccess

lá cờ cn

Tôi muốn loại bỏ nhu cầu đưa index.php vào các liên kết của mình. Thay vì

example.com/about/index.php

tôi muốn nó được

ví dụ.com/about/

Thứ hai, tôi cũng muốn các trang không có chỉ mục khác có thể điều hướng được mà không cần phần mở rộng tệp .php trong url. Thay vì

example.com/about/who_we_are.php

tôi muốn nó được

example.com/about/who_we_are

Tôi không gặp may mắn khi cả hai hoạt động đồng thời. Đây là những gì tôi có trong tệp .htaccess của mình:

Tùy chọn -Chỉ mục
Directory Index index.php index.htm index.html
Viết LạiEngine Trên
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

Hiện tại, nó đang xóa .php khỏi các trang không có chỉ mục nhưng tất cả các trang có chỉ mục thư mục đều đang chuyển hướng đến trang chủ.

Tôi đang làm gì sai?

Điểm:0
lá cờ cn

Ngay sau khi đăng câu hỏi này, tôi đã tìm thấy giải pháp cho vấn đề này.

# xóa .php; sử dụng THE_REQUEST để ngăn các vòng lặp vô hạn
RewriteCond %{HTTP_HOST} ^www\.example\.com
RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP
RewriteRule (.*)\.php$ $1 [R=301]

# xóa chỉ mục
RewriteRule (.*)index$ $1 [R=301]

# xóa dấu gạch chéo nếu không phải thư mục
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /$
Quy tắc viết lại (.*)/ $1 [R=301]

# thêm .php để truy cập tệp, nhưng không chuyển hướng
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]

Tôi hy vọng điều này sẽ giúp bất kỳ ai khác đang tìm kiếm giải pháp cho vấn đề này.

Đă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.