.htaccess中的RewriteRule不起作用

riw*_*alk 6 apache .htaccess mod-rewrite

我目前在本地计算机上运行Apache2,安装了最新版本的Ubuntu.

我试图通过使用.htaccess文件来进行基本的URL重写.

文件" http://localhost/page.php?= home "确实存在,而位置"/ doesnotexist/home"则不存在.

我希望在请求第二页时加载第一页.

我的.htaccess文件如下所示:

RewriteEngine On
RewriteRule ^/doesnotexist/(.*)$ /page.php?p=$1 
Run Code Online (Sandbox Code Playgroud)

我的httpd.conf文件如下所示:

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

<Directory /var/www>
    AllowOverride All
</Directory>
Run Code Online (Sandbox Code Playgroud)

请注意,我的httpd.conf文件看起来正是这样的,因为它是空的之前,我编辑它.

我得到的结果是这样的:

Not Found

The requested URL /doesnotexist/home was not found on this server.
Run Code Online (Sandbox Code Playgroud)

我已经搜索了这个问题的永生****,除了上面的错误,我从来没有得到任何其他东西.

如果有人有任何想法,我会非常感激.

riw*_*alk 22

为了别人的利益,我想出了答案:

在文件"/ etc/apache2/sites-enabled/000-default"中有一行:

AllowOverride None
Run Code Online (Sandbox Code Playgroud)

将其更改为:

AllowOverride All
Run Code Online (Sandbox Code Playgroud)

  • 注意:该配置选项已移至 /etc/apache2/apache2.conf (3认同)