.htaccess简单重写以删除文件扩展名无效 - 给出错误404未找到

时间:2015-02-06 20:37:13

标签: apache .htaccess mod-rewrite raspberry-pi clean-urls

我在我的新RaspberryPi上编码。我尝试使用.htaccess从名为' greet'的文件中删除.php。

我安装了apache2:" sudo apt-get install apache2
使用以下功能启用重写模块:" sudo a2enmod rewrite "
我也改变了覆盖标准网站配置的许可。

我知道我的重写模块正在运行,因为我尝试了以下内容:

RewriteEngine On
RewriteRule ^greet.html$ greet.php

成功将192.168.0.123/greet.html重定向到192.168.0.123/greet.php。

但是,以下代码删除.php文件扩展名似乎对我无效:

   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^([^\.]+)$ $1.php [NC,L]

当我在浏览器中输入http://192.168.0.123/greet时,我没有收到greet.php文件。相反,我最终选择了 404 Not Found 页。

2 个答案:

答案 0 :(得分:0)

你可以这样试试你的规则。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/.]+)$ $1.php [NC,L] 

答案 1 :(得分:0)

为什么不使用多视图来处理这个问题?如果你没有很多复杂的重写规则,你可以让mod_negotiation为你处理这些扩展。只需要打开它

Options +Multiviews