我目前在本地计算机上运行Apache 2,安装了最新版本的Ubuntu。
我正在尝试通过使用.htaccess文件进行基本的URL重写。
文件“http://localhost/page.php?=home“确实存在,而位置“/doesnotexist/home”不存在。
我想有第一页被加载时,第二个是请求。
我的.htaccess文件看起来像这样:
RewriteEngine On
RewriteRule ^/doesnotexist/(.*)$ /page.php?p=$1
我的httpd.conf文件看起来像这样:
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
<Directory /var/www>
AllowOverride All
</Directory>
请注意,我的httpd.conf文件看起来 * 完全 * 像这样,因为在我编辑它之前它是空的。
我得到的结果是:
Not Found
The requested URL /doesnotexist/home was not found on this server.
我已经在谷歌上搜索了这个问题的答案,除了上面的错误,我从来没有得到过任何东西。
如果有人有任何想法,我将非常感激。
4条答案
按热度按时间ngynwnxp1#
为了别人的利益,我想出了答案:
在文件“/etc/apache 2/sites-enabled/000-default”中有这样一行:
将此更改为:
eagi6jfj2#
在.htaccess文件中使用mod_rewrite时,需要从模式中删除上下文路径前缀,在根目录的情况下,路径前缀就是
/
,所以尝试以下操作:6yjfywim3#
如果我在/Library/WebServer/Documents中放置一个.htaccess并打开“localhost/";为了测试它,这个功能和预期的一样。只是在“~/站点”中不起作用。我已经在MacOSX Mavericks上试过了。
mtb9vblg4#