如何使用.htaccess隐藏php扩展并仍保持path_info超全局可访问

时间:2013-08-24 15:45:19

标签: php .htaccess

我想知道在使用.htaccess时从网址隐藏php扩展名的正确方法是什么。目前我的.htaccess是这样的:

RewriteCond %{REQUEST_FILENAME}.php     -f
RewriteRule ^(.+\.php)$/(.+)$/(.+)$/$   /$1.php/$2/$3 [S]
RewriteCond %{REQUEST_FILENAME}     !-f
RewriteCond %{REQUEST_FILENAME}     !-d
RewriteCond %{REQUEST_FILENAME}.php     -f
RewriteRule ^(.+)$          /$1.php [L,QSA]

上面的第二条规则是因为我必须在提供这样的网址时保持PHP_INFO的可访问性:xxx / vision.php / 2013 / Enero

在htdocs目录中我有AllowOverridde选项,它设置如下:

RewriteEngine On
Options +FollowSymlinks
RewriteBase /

但每当我尝试访问服务器文档根目录时,它就会给我一个内部服务器错误。 也许有人能指出我正确的方向,并希望很快就会让我匆忙

1 个答案:

答案 0 :(得分:0)

Options MultiViews

将在没有mod_rewrite的情况下完成。 MultiViews允许您在没有扩展名的情况下访问文件。并且因为AcceptPathInfo默认为.php和其他脚本文件,所以这也会起作用:

/abc/articles/2013/Enero

将转至/abc/articles.php,为其提供/2013/Enero的PATH_INFO。