无脂框架mod重写不起作用

时间:2014-12-04 15:10:04

标签: php .htaccess mod-rewrite document-root fat-free-framework

我正在尝试在MAMP上运行一个带有Fat-Free Framework的php项目,在Yosemite 10.10.1上运行。 我在MAMP Web根文件夹“htdocs”中有所有项目文件,所有fatfree项目文件都位于fatfree-master目录中。

具体的dir位置是:htdocs / libs / FatFreeFramework / fatfree-master

我已成功将数据库导入phpmyadmin。它的大小为2.5mb,但在上传期间没有错误闪现,所以我认为大小根本不是问题!

我在apache&上设置了一个虚拟主机现在文件httpd-vhosts.conf看起来像这样:

ServerName localhost

DocumentRoot “/Applications/MAMP/htdocs”

<Directory "/Applications/MAMP/htdocs">
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Order allow,deny
    Allow from All
</Directory>
  

ErrorLog /Applications/MAMP/logs/error.log

     

CustomLog /Applications/MAMP/logs/access.log合并

按照these指令启用mod重写,我编辑了.htaccess文件,现在它看起来像这样:

  

RewriteEngine On

     

RewriteBase / libs / FatFreeFramework / fatfree-master /

     

RewriteCond%{REQUEST_FILENAME}!-l

     

RewriteCond%{REQUEST_FILENAME}!-f

     

RewriteCond%{REQUEST_FILENAME}!-d

     

RewriteRule。* /libs/FatFreeFramework/fatfree-master/index.php [L,QSA]

我修改了重写基数以指向/ [dirname] /然后将RewriteRule更改为/ [dirname] /index.php

在httpd.conf中我将目录编辑为AllowOverride All,但我仍然无法在浏览器上运行该项目。

我注意到有两个.htaccess文件,一个在htdocs dir&amp;另一个是胖子大师的主人!

为了在fatfree-framework上启用mod重写,我必须编辑其中哪一个?

我是否正确指出了index.php的路径?

3 个答案:

答案 0 :(得分:3)

只需使用此.htaccess即可。

RewriteEngine On
RewriteCond %{REQUEST_URI} \.ini$
RewriteRule \.ini$ - [R=404]
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L,QSA]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

答案 1 :(得分:1)

只有重要的.htaccess是您从浏览器访问的目录(在您输入localhost后的情况下,它应该是htdocs中的那个。

其次,如果您启用了 mod_rewrite ,请使用phpinfo()功能进行检查。如果不是,请启用它。

最后,我认为您应该将RewriteBase设置为/

您还可以尝试(因为我不确定)在Options +FollowSymLinks之后立即添加RewriteEngine On

答案 2 :(得分:0)

您是否在Apache上启用了mod_rewrite模块?

我相信它存在于httpd.conf文件中,您需要取消注释LoadModule mod_rewrite行。