Apache mod_rewrite在服务器上启用但不起作用?

时间:2017-01-29 12:45:19

标签: php wordpress apache

我最近安装了灯堆并启用了mod_rewrite:

$ sudo a2enmod rewrite
$ service apache2 restart

我可以在我的phpinfo上看到它:

enter image description here

但是当我尝试在我的WordPress中访问下面这样的URL时:

http://my-localhost/my-wordpress/whats-on/

我收到此错误:

  

未找到

     

在此处找不到请求的网址/ my-wordpress / whats-on /   服务器

     

Apache / 2.4.18(Ubuntu)服务器,位于127.0.0.1端口80

我还能做什么?我错过了什么吗?

有什么想法吗?

我也有.htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /my-wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /my-wordpress/index.php [L]
</IfModule>

# END WordPress

但为什么?

修改

我创建了一个简单的测试:

RewriteRule ^test.html$ test.php [L] 

但是我收到404错误而不是被定向到test.php

Not Found

The requested URL /mod_rewrite/basic/test.html was not found on this server.

Apache/2.4.18 (Ubuntu) Server at 127.0.1.1 Port 80

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

要解决此问题,请按照以下步骤操作:

sudo nano /etc/apache2/apache2.conf

查找:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

替换为:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

使用命令退出并保存并重新启动apache

sudo systemctl restart apache2

结束:-)