所以我有这个网站,它有一个像这样的目录结构:
我想仅从不在子目录中的网址中删除.php文件扩展名。因为如果我从所有URL中删除.php,如下所示:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
以前可通过此URL访问的子目录中的文件:https://example.com/folder现在提供404,除非我在其末尾输入index.php或文件名。
所以我想知道以下内容:
答案 0 :(得分:0)
如果您只想将.php
扩展名添加到网站根目录中的文件,请使用:
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^/.]+)/?$ $1.php [L]
此处否定的字符类[^/.]+
将仅匹配当前目录中的文件,因为它匹配的一个或多个字符不是/
和.
但是,如果要将.php
正确添加到所有文件,请使用以下规则:
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]