使用 .htaccess 将文件扩展名隐藏在文件夹中



我的网站是这样的组织方式:

  • 索引.php
  • 产品.php
  • 文件
    • file_manager.php
    • another_file.php

我只想从根目录中删除扩展名。所以在这种情况下,index.php应该是index和产品.php应该是产品,但我不想触及文件夹中的文件扩展名。所以file_manager.php和another_file.php应该保留扩展

此时我的代码是这样的:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php

但是此代码会从文件夹中删除扩展名。

我该如何更改此设置?

调整正则表达式以确保它仅影响根文件:

RewriteEngine on
RewriteCond %{THE_REQUEST} s/+([^/]+?).php[s?] [NC]
RewriteRule ^ /%1 [R=301,NE,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^/]+?)/?$ $1.php [L]

最新更新