Apache 如何在httpd.conf文件中使用mod_rewrite删除.php扩展名?

Apache 如何在httpd.conf文件中使用mod_rewrite删除.php扩展名?,apache,mod-rewrite,httpd.conf,Apache,Mod Rewrite,Httpd.conf,我知道网上有无数的例子说明如何在.htaccess文件中使用mod_rewrite删除.php扩展名。我发现: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php 当我在根目录中的.htaccess文件中使用它时,它工作得非常好 现在,我尝试切换到在服务器上的httpd.conf配置文件中进行重写,而不是在ht

我知道网上有无数的例子说明如何在.htaccess文件中使用mod_rewrite删除.php扩展名。我发现:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
当我在根目录中的.htaccess文件中使用它时,它工作得非常好

现在,我尝试切换到在服务器上的httpd.conf配置文件中进行重写,而不是在htaccess中进行重写。我将准确的代码复制并粘贴到文件中,并将其包装在
标记中(我遵循的教程中说过这样做)

但现在重写不起作用;当我尝试跟踪我的网站上在更改之前工作的链接时,Apache给了我一个object not found错误

我知道mod_rewrite正在工作,我正在将代码放在正确的位置,因为我有规则

RewriteRule ^/echo/(.*)$ /retired/echosomething.php?string=$1
就在其他重写行之后,这行就可以工作了


在没有.php扩展的情况下,我需要做些什么才能让mod_重写正常工作?为什么这段代码在htaccess中工作,而在httpd.conf中不工作?

应该加载重写规则时是否加载了模块?在configs中,顺序很重要。是的,我试图说清楚,我的第二条规则行起作用了,但第一条没有。