我刚刚在Ubuntu系统上安装了LAMP堆栈。

重定向对我不起作用。我不知道该如何解决。有人可以帮我吗?

评论

恕我直言,这个问题不是Ubuntu特有的,应该迁移到Server Fault。

OP在UBUNTU上安装了Lamp。您还需要多少特定于Ubuntu的内容?

@wojov:我不知道这种情况,但是这种说法不起作用。 “如何在Ubuntu上使用该应用程序?”大多是题外话。

这不是“如何使用应用程序”,而是“如何在Ubuntu中启用特定功能”。 Ubuntu下的Apache使用不同的配置布局,其中每个模块和虚拟主机是/ etc / apache2中的一个文件,可以使用a2 *程序启用该文件。

您应该描述自己为缩小问题范围所做的工作

#1 楼

要启用它的重写模块,请运行“ apache2 enable module rewrite”:

sudo a2enmod rewrite


您需要重新启动Web服务器以应用更改:

sudo service apache2 restart


如果计划在.htaccess文件中使用mod_rewrite,则还需要通过将.htaccess更改为AllowOverride None来启用对AllowOverride FileInfo文件的使用。对于默认网站,请编辑/etc/apache2/sites-available/default

    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # changed from None to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>


进行此更改后,您需要再次重新启动Apache。


Apache AllowOverride上的文档
a2enmod的手册页


评论


我在AllowOverride All上获得了更多成功

– Valentin Despa
2013年9月26日在9:42

谢谢! sudo a2enmod重写和FileInfo为我修复了它!

–d -_- b
2014年2月23日在21:08

对我来说,该文件是/etc/apache2/apache2.conf,我在其中找到了该配置条目

– doc_id
2014-03-25 14:37

是的,使这两个更改解决了问题。

–阿德林
15年12月28日在10:58

它对我不起作用。我在这里问了一个问题askubuntu.com/questions/809619/failing-to-rewrite-url

– Suhail Gupta
16年8月8日在12:52

#2 楼

我敢于添加关于ubuntu 14.04和.htaccess的特殊答案(作为上述出色答案的补充):

在14.04中,默认配置文件的名称更改为000-default.conf

sudo gedit /etc/apache2/sites-available/000-default.conf


将以下内容添加到文件末尾:

<Directory "/var/www/html">
    AllowOverride All
</Directory>


出于某些原因,在Ubuntu 14.04和apache2中, root设置为/www/html。如果要将Web服务器根目录更改回旧的/wwwopen 000-default.conf并更改

DocumentRoot /var/www/html/




DocumentRoot /var/www/


,然后偏离路线应该是

<Directory "/var/www">
    AllowOverride All
</Directory>


评论


感谢信息!这种/新的方式,我们可以将www用作存放所有网站的文件夹,而html默认是本地主机的“ website”。如果您正在向世界开放端口,这可能很重要-这样,您的本地主机就无法看到其他项目的文件夹。

–弗拉基米尔(Vladimir Vukanac)
15年11月27日在17:34

它对我不起作用。我正在使用Ubuntu 14.04.4 LTS

– Suhail Gupta
16年8月22日在11:20