Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用.htaccess隐藏php扩展名,并保持路径\u info superglobal可访问_Php_.htaccess - Fatal编程技术网

如何使用.htaccess隐藏php扩展名,并保持路径\u info superglobal可访问

如何使用.htaccess隐藏php扩展名,并保持路径\u info superglobal可访问,php,.htaccess,Php,.htaccess,我想知道当使用.htaccess时,从URL隐藏php扩展名的正确方法是什么。目前我的.htaccess如下所示: RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.+\.php)$/(.+)$/(.+)$/$ /$1.php/$2/$3 [S] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond

我想知道当使用.htaccess时,从URL隐藏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]
上面的第二条规则是因为我必须在给出如下url时保持PHP_信息的可访问性:xxx/vision.PHP/2013/Enero

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

RewriteEngine On
Options +FollowSymlinks
RewriteBase /
但每当我试图访问服务器文档根目录时,它都会给我一个内部服务器错误。 也许有人能给我指出正确的方向,希望很快,因为我赶时间

Options MultiViews
不用修改就可以了。使用“多视图”可以访问文件,而无需扩展名。由于.php和其他脚本文件的默认情况下,
AcceptPathInfo
处于启用状态,因此这也将起作用:

/abc/articles/2013/Enero

将转到/abc/articles.php,给它提供
/2013/Enero

的路径信息,查看Web服务器
错误。日志
以了解。另外,
$
是主题结束标记,因此在第二条规则中不太可能不止一次有用。@mario所以我想我可以像这样编写第二条规则^(.+\.php)$/(.+)/(.+)/$1.php/$2/$3[S]。但是,错误日志告诉我,my.htaccess中不允许使用重写引擎和重写条件!我尝试了几种组合,将整个条件和规则放在.htaccess中,或在httpd.config中设置RewriteEngine和RewriteBase,但迄今为止都没有成功。它似乎拒绝了我所做的所有可能的调整。从错误日志中,我得到“此处不允许重写引擎”(在my.htaccess的路径中)或“此处不允许重写条件”。我不明白,我遗漏了什么?我更改了httpd.config,使下面的部分:
Order allow,deny deny from all said all
现在读取了
allow from all
,但它不起作用