如何正确隐藏.php扩展名形成我的网址:例如:
www.example.com/index.php
到
www.example.com/index
我的.htaccess文件内容是:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
虽然phpinfo()显示mod_rewrite在" Loaded Modules"部分。这里有什么问题?
当我尝试设置身份验证时:
AuthUserFile /usr/home/vesa/.htpasswd
AuthGroupFile /dev/null
AuthName Somewhere Neat
AuthType Basic
<Limit GET POST>
require user vesa
</Limit>
enter code here
它要求输入用户名和密码。因此我假设.htaccess文件由服务器处理。正确?
当我尝试添加
时Options +FollowSymlinks
我得到500 Internal Server Error
当我添加RewriteRule (.*)\.asp $1.php
时,它成功地将任何.asp扩展名更改为.php
当我使用RewriteRule时,它只是将我的浏览器重定向到另一个文件。因此,如果我试图隐藏扩展名,它应该将我重定向到没有扩展名的文件 - 在这种情况下,我会收到错误,因为没有这样的文件存在。什么是最简单的方法来使mod_rewrite&#34;隐藏&#34; (链接到.php文件时,写入不带扩展名.php的url文件名)?
答案 0 :(得分:0)
您的PHP文件是否发送重定向以强制用户使用index.php?使用像firebug这样的东西来查看标题中发生了什么。
答案 1 :(得分:0)
可能有一些配置集允许(.htaccess文件)重定向到任何文件,它基本上是重写URL,但同时它不允许Options +FollowSymlinks
。我不熟悉php配置文件,但我确信系统管理员知道发生了什么。