重定向对我不起作用。我不知道该如何解决。有人可以帮我吗?
#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服务器根目录更改回旧的/www
,open 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
评论
恕我直言,这个问题不是Ubuntu特有的,应该迁移到Server Fault。OP在UBUNTU上安装了Lamp。您还需要多少特定于Ubuntu的内容?
@wojov:我不知道这种情况,但是这种说法不起作用。 “如何在Ubuntu上使用该应用程序?”大多是题外话。
这不是“如何使用应用程序”,而是“如何在Ubuntu中启用特定功能”。 Ubuntu下的Apache使用不同的配置布局,其中每个模块和虚拟主机是/ etc / apache2中的一个文件,可以使用a2 *程序启用该文件。
您应该描述自己为缩小问题范围所做的工作