我正在尝试使用 Apache 的 mod_rewrite 并使用 .htaccess 文件创建一个具有干净 URL 的 PHP 网站。mod_rewrite 似乎正在运行,但是,它声称无法在我的服务器上找到存在的文件。
只是作为一个基本测试,这是我的 .htaccess 文件目前的样子 - 转到 [mysite]/page 应该重定向到 index.php 文件:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^page$ index.php
据我所知,我也已适当地设置了.conf 文件:
<Directory "/Users/myuser/Sites/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
但是,当我尝试通过 mod_rewrite ( localhost/~myuser/mysite/page ) 访问 URL 设置时,出现以下信息:
Not Found
The requested URL /Users/myuser/Sites/mysite/index.php was not found on this server.
但是,该文件确实存在,而且位置正确!否则,网站可以正常工作,如果我转到 localhost/~myuser/mysite/index.php,则一切正常 - 当然,减去任何类型的干净 URL。
有人之前见过这种情况吗/有人知道我做错了什么吗?
答案1
如果您在用户目录中并替换为相对路径,则需要 RewriteBase。
答案2
您必须在 Multiviews 后添加 FollowSymlinks。我在这里为整个过程写了一个教程:
http://www.jermexpress.com/how-to-enable-mod_rewrite-on-snow-leopard-10-6/
希望这能解决你的问题。干杯!:)