到目前為止,我還沒有看到將 /foo/bar 重新編寫為 /foo/bar.php 的有效重寫器,因此我建立了自己的重寫器。它在頂層目錄和子目錄中都有效,而且不需要硬編碼 RewriteBase。
.htaccess
RewriteEngine on
# 將 /foo/bar 重寫為 /foo/bar.php
RewriteRule ^([^.?]+)$ %{REQUEST_URI}.php [L]
# 如果原始請求為 /foo/bar.php,則傳回 404
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* - [L,R=404]
# 注意!針對 Windows 上的 Apache:像這樣將 [NC] 新增至 RewriteCond
# RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$" [NC]