【发布时间】:2015-02-02 12:43:10
【问题描述】:
我正在尝试在 MAMP 上运行一个带有 Fat-Free Framework 的 php 项目,该项目在 Yosemite 10.10.1 上运行。 我在 MAMP Web 根文件夹“htdocs”中有所有项目文件,所有 fatfree 项目文件都位于 fatfree-master 目录中。
具体的目录位置是: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 文件,现在看起来像这样:
重写引擎开启
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]
我修改了rewrite base指向/[dirname]/,然后将RewriteRule改为/[dirname]/index.php
在 httpd.conf 中,我将目录编辑为 AllowOverride All 但我仍然无法让项目在浏览器上运行。
我注意到有 2 个 .htaccess 文件,一个在 htdocs 目录,另一个在 fatfree-master 目录!
为了在 fatfree-framework 上启用 mod 重写,我必须编辑其中的哪一个?
我是否正确指向了 index.php 的路径?
【问题讨论】:
-
不要更改 RewriteRule 的路径。它应该简单地保留 index.php。 Rewritebase 用于分配路径。
-
感谢您的回复!
标签: php .htaccess mod-rewrite document-root fat-free-framework