我知道网上有无数关于如何在.htaccess文件中使用mod_rewrite来删除.php扩展名的例子。我发现了这个:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
当我在根目录中的.htaccess文件中使用它时,这非常有效。
现在我正在尝试切换到在服务器上的httpd.conf配置文件而不是htaccess中进行重写。我将那些确切的代码复制并粘贴到文件中,将其包装在<IfModule mod_rewrite.c></IfModule>
标记中(我按照后面的教程说这样做。)
但现在重写不起作用;当我尝试在我的网站上关注更改之前工作的链接时,Apache给了我一个找不到错误的对象。
我知道mod_rewrite正在运行,我将代码放在正确的位置和所有内容,因为我有规则
RewriteRule ^/echo/(.*)$ /retired/echosomething.php?string=$1
在其他重写行之后,此行正常工作。
在没有.php扩展名的情况下,我需要做些什么才能使mod_rewrite工作?为什么这段代码在htaccess中工作但在httpd.conf中却没有?