运行不带扩展的PHP页面

运行不带扩展的PHP页面,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我想在apache web服务器上运行我的PHP网页,而不使用.PHP扩展名。因此,我添加了以下代码: RewriteEngine on RewriteBase / Rewritecond %{REQUEST_URI} !(^/?.*\..*$) [NC] RewriteRule (.*)$ $1.php [NC] 在.htaccess文件中。这解决了我的问题,但另一个问题出现了。我无法查看任何目录的内容(即目录中包含的文件)。请为我提供一个无此问题的替代重写规则。如果在请求URI的末尾附加.

我想在apache web服务器上运行我的PHP网页,而不使用
.PHP
扩展名。因此,我添加了以下代码:

RewriteEngine on
RewriteBase /
Rewritecond %{REQUEST_URI} !(^/?.*\..*$) [NC]
RewriteRule (.*)$ $1.php [NC]

.htaccess
文件中。这解决了我的问题,但另一个问题出现了。我无法查看任何目录的内容(即目录中包含的文件)。请为我提供一个无此问题的替代
重写规则。

如果在请求URI的末尾附加.php,则需要确保请求URI指向现有资源:

RewriteEngine on
RewriteBase /
Rewritecond %{REQUEST_URI} !(^/?.*\..*$) [NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule (.*)$ $1.php [NC]
RewriteCond%{REQUEST\u FILENAME}.php-f
检查请求的URI是否附加了“.php”,它将映射到现有文件(
-f
)。

尝试在
RewriteCond
上面设置:

DirectoryIndex index.php

您可以使用此代码,它正在我的网站上运行:

RewriteEngine On
#unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [R=301,L]

#resolve .php file for extensionless php urls
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]

#redirect external .php requests to extensionless url
#RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/
#RewriteRule ^(([^/]+/)*[^.]+)\.php $1 [R=301,L]

谢谢你的编辑。我的英语很差…谢谢你的快速反应和解决我的问题,