删除 php 扩展名和索引 (.htaccess)



我通过使用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]

最新更新