如何使用.htaccess隐藏php扩展名,并保持路径\u info superglobal可访问
我想知道当使用.htaccess时,从URL隐藏php扩展名的正确方法是什么。目前我的.htaccess如下所示:如何使用.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
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
,但它不起作用