.htaccess文件不适用(删除.php扩展名)


.htaccess file did not apply (removing .php extension)

我尝试通过在XAMPP本地主机服务器上使用.htaccess文件来删除.php扩展名。我在其中添加了以下几行:

RewriteEngine On
RewriteOptions inherit
Options +FollowSymlinks
Options -Multiviews
## hide .php extension
## To externally redirect /dir/foo.php to /dir/foo
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^'.]+)$ $1.php [NC,L]

我尝试了更多的选择来实现我的目标,但什么都没有改变。我做错什么了吗?

检查httpd.conf文件(apache的配置文件)中是否有AllowOverride All。如果你在Windows上使用XAMPP,那么httpd.conf文件应该位于如下目录:C: ' xampp ' apache ' conf ' httpd . conf

在Directory标记中添加AllowOverride All行。例如: <Directory C:'xampp'htdocs> AllowOverride All Allow from all </Directory>

注:通过允许覆盖,您告诉服务器允许.htaccess文件覆盖服务器的默认配置。

编辑:对不起,我之前提到AllowOverride 'On'。应该是AllowOverride 'All'。这在我的ubuntu中工作得很好。我将尽快找出如何使它在windows(xampp)中工作。

我在apache2上的工作如下:希望它也能在XAMPP上工作。这与您的代码几乎相同,但是它检查请求的文件名是否存在,以及PHP文件是否存在

RewriteEngine On
RewriteOptions inherit
Options +FollowSymlinks
Options -Multiviews
## hide .php extension
## To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}'.php -f
RewriteRule ^(.*)$ %{REQUEST_FILENAME}'.php [NC,L]