【发布时间】:2011-12-18 00:33:14
【问题描述】:
我的 mac book pro leopard 上有一个网站项目,我使用的是内置的 apache2 和 php。我已经在 httpd.conf 和 user.conf 中进行了配置以使用 htaccess。所做的更改如下:
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
<Directory >
AllowOverride All
</Directory>
问题是当我想打开一个网站时 localhost/~username/site/site/index.php/welcome,index.php做一些操作,找到正确的控制器和正确的页面。
但是当我尝试进入像 site/welcome 这样的网站时,apache 给了我以下错误:
找不到
在此服务器上未找到请求的 URL Users/username/Sites/site/index.php/welcome。
问题是 apache 得到这个就像它确实是一个文件,并且错误语句以文件系统的方式给出它,但是这个请求必须被提取到 index.php。
我的 .htaccess 文件看起来像这样
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [NC,QSA,L]
</ifModule>
让我感到困扰的是,此配置在 Linux 和 Windows 上都适用,但在 Mac 上却不适用。我觉得注定要失败:)
【问题讨论】:
-
能否确认重写模块已正确启用?
-
是的,我可以在 phpinfo() 的加载模块部分看到它们;
-
您会考虑更改您接受的答案吗?你接受的那个实际上是不正确的。 @tong 的回答是正确的。
标签: php macos apache .htaccess mod-rewrite