我已经尝试了所有能想到的方法,但仍然不起作用。我试图让 Larry Ullman 的《Advanced PHP》一书中的示例代码运行。他的说明有点欠缺,所以我不得不做一些研究。以下是我配置的内容:
用户名.conf
<Directory "/Users/me/Sites/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
httpd配置文件
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
DocumentRoot "/Users/me/Sites"
<Directory />
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>
<Directory "Users/me/Sites">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
.htaccess
<IfModule mod_rewrite.so>
RewriteEngine on
RewriteBase /phplearning/ADVANCED/ch02/
# Redirect certain paths to index.php:
RewriteRule ^(about|contact|this|that|search)/?$ index.php?p=$1
RewriteLog "/var/log/apache/rewrite.log"
RewriteLogLevel 2
</IfModule>
什么都没起作用,甚至不会记录到 rewrite.log 文件中。我做错了什么?仅供参考,即使我设置了一个非常简单的规则或使用根作为重写基础,它仍然会失败。我还验证了 mod_rewrite 模块正在运行。我真的很生气。
答案1
乔尔,
嗨 - 刚刚遇到了同样的问题。看到这个帖子:
并改变了我的用户名.conf文件来自
<Directory "/Users/myusername/Sites/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
到
<Directory "/Users/myusername/Sites/">
Options Indexes MultiViews FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
现在mod_rewrite
正在为我工作。