Tôi đã có một trang web nơi tất cả các trang là tập lệnh php, vì vậy các URL kết thúc .php.Sử dụng mod_rewrite để ẩn .php từ cuối URL
Tôi đã thêm dòng sau vào file .htaccess, và bây giờ tôi có thể truy cập các tập tin .php mà không có phần mở rộng .php:
RewriteEngine On # Turn on rewriting
RewriteCond %{REQUEST_FILENAME}.php -f # If the requested file with .php on the end exists
RewriteRule ^(.*)$ $1.php # serve the PHP file
Cho đến nay rất tốt. Nhưng bây giờ tôi muốn thêm một Chuyển hướng trên tất cả các tệp .php để bất kỳ liên kết cũ nào ngoài tầm kiểm soát của tôi được chuyển hướng đến phiên bản URL mới.
Tôi đã thử điều này:
RewriteEngine On # Turn on rewriting
RewriteCond %{REQUEST_URI} .*\.php
RewriteRule ^(.*)\.php$ http://example.com/$1 [R=permanent,L]
RewriteCond %{REQUEST_FILENAME}.php -f # If the requested file with .php on the end exists
RewriteRule ^(.*)$ $1.php [L] # serve the PHP file
nhưng điều đó dường như để gửi một chuyển hướng ngay cả đối với các URL không kết thúc trong .php, vì vậy tôi gặp khó khăn trong một vòng lặp vô hạn. Bất kỳ sự kết hợp nào khác mà tôi thử dường như không khớp với yêu cầu nào (và để lại cho tôi ở page.php) hoặc tất cả các yêu cầu (và khiến tôi bị mắc kẹt trong một vòng lặp).
Xem http://stackoverflow.com/questions/3024631/htaccess-remove-php-extension-index-php-and-add-trailing-slash/ – TheDeadMedic