我的网站是这样的组织方式:
- 索引.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]