我通过使用htaccess实现了删除php扩展。我的代码是
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]
www.abc.com/folder1/page.php -> www.abc.com/folder1/page
当然,该代码删除了索引的php扩展名.php
www.abc.com/folder1/index.php -> www.abc.com/folder1/index
我的问题是如何删除单词索引
www.abc.com/folder1/index -> www.abc.com/folder1/
简而言之,当我键入 www.abc.com/folder1/page 时,页面.php应该在文件夹 1 中运行,当我键入索引时 www.abc.com/folder1/.php应该在文件夹 1 中运行。
您可以在站点根目录 .htaccess 中用以下 2 条规则替换显示的规则:
RewriteEngine On
# To externally redirect /dir/file.php to /dir/file and remove index
RewriteCond %{THE_REQUEST} s/+(.*?/)?(?:index|(S+?)).php[/s?] [NC]
RewriteRule ^ /%1%2 [R=301,L,NE]
# To internally forward /dir/file to /dir/file.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]