删除localhost apache服务器上的php扩展?

时间:2015-04-28 21:03:44

标签: php apache

我试图在查看php文件时不要求.php扩展名。我当前的配置如下:

<VirtualHost *:80>
    DocumentRoot /var/www/server
    ServerName localhost

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    RewriteRule ^([^/\.]+)/?$ $1.php  [L,QSA]

</VirtualHost>

然而,当我尝试访问login.php这样的文件作为登录时,我没有工作,因为我得到了404。我的服务器设置有点奇怪,在/ var / www / server中是另一个文件夹Dev / server /的符号链接。此外,由于它是本地主机,我通过localhost/project/login.php访问它。

1 个答案:

答案 0 :(得分:1)

如果URI包含路径中的句点,那么正则表达式规则看起来会失败。这是不好的,因为RFC没有说它们无效。

你可以试试这个:

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

对于http://test.com/test/test.test/test.php

这样的请求,会产生http://test.com/test/test.test/test

我会测试它更多。您可能需要查看.htaccess测试器,如下所示:http://htaccess.madewithlove.be/

如果测试需要,REQUEST_FILENAME可以换出REQUEST_URI