删除.php扩展名无效

时间:2013-11-05 06:10:36

标签: php html apache .htaccess mod-rewrite

我发现了很多关于删除URL中的.php扩展名的教程和问题。我已经尝试了很多例子,直到现在它还没有用。这让我发疯了。我还想在URL的末尾加上斜杠,但首先我想首先实现这一点。目前我尝试过这是我的一些解决方案:

Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L]

还有这个:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

没有什么是好的。我使用Windows 7在笔记本电脑上工作,并使用XAMPP。我只是创建了我的.htaccess文件并将其放在localhost / myFolder中。当我在浏览器中运行时,根据我的解决方案,(i)有时我找不到页面,(ii)有时服务器内部错误。此外,当我运行localhost / myFolder / index时,URL将被重定向到localhost / index而不使用myFolder。我想知道为什么会发生这种情况并希望有人可以给我链接或解决方案,因为我尝试过这么多。提前谢谢。

3 个答案:

答案 0 :(得分:0)

以下对我来说很好:

RewriteEngine On
RewriteBase /myFolder
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*[^/])/?$ $1.php [L]

答案 1 :(得分:0)

在/myFolder/.htaccess中尝试使用此代码隐藏.php扩展名:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/myFolder/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

答案 2 :(得分:0)

解决问题的方法:

Options +MultiViews
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/myFolder/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

我刚刚替换了-中的multiviews登录,它开始在我的localhost上工作