-->

的.htaccess不工作阿帕奇(.htaccess not working apache)

2019-06-17 22:16发布

我从在Linux上运行Ubuntu的AWS EC2服务的服务器和我已经安装了Apache,PHP和MySQL。

我添加了一个.htaccess在我的文档根目录的文件/var/www/html

我在它进入这个代码: ErrorDocument 404 /var/www/html/404.php和它仍然没有显示出来。

我不停地输入此命令多次: sudo service httpd restart ,重新启动服务器,但不会显示任何的改变......

我怎样才能解决这个问题?难道我做错了什么?

提前致谢!

Answer 1:

首先,请注意重启httpd,是没有必要的.htaccess文件。 .htaccess文件是专门针对谁没有根的人 - 即不具有访问的httpd服务器的配置文件,并且无法重新启动服务器。 正如你能重新启动服务器,你并不需要.htaccess文件,并可以直接使用主服务器配置。

其次,如果.htaccess文件被忽略,你需要检查看到的AllowOverride设置正确。 见http://httpd.apache.org/docs/2.4/mod/core.html#allowoverride了解详情。 您还需要确保它在正确的范围内设置 - 即,在配置中的右挡。 要确保你不是编辑一个块中,例如。

第三,如果你想确保.htaccess文件,其实是被读,把垃圾在里面。 无效的线路,如“无效的行HERE”,在你的.htaccess文件,将导致500服务器错误,当你在包含该文件的目录指向你的浏览器。 如果没有,那么你没有正确的AllowOverride配置。



Answer 2:

  1. 启用Apache的mod_rewrite的模块

    a2enmod rewrite

  2. 添加以下代码,以/etc/apache2/sites-available/default

    AllowOverride All

  3. 重新启动Apache

    /etc/init.d/apache2 restart



Answer 3:

如果你已经尝试了所有上述情况,这些都是有效和良好的答案,你的htaccess文件不能正常工作或读取更改指令apache2.conf文件。 Ubuntu下的路径是/etc/apache2/apache2.conf

更改<Directory>指令指向您的公共网页,其中htaccess文件所在。 从变化AllowOverride NoneAllowOverride All

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

我有同样的问题,发现在Ubuntu问的答案和解释! 论坛https://askubuntu.com/questions/421233/enabling-htaccess-file-to-rewrite-path-not-working



Answer 4:

对于Ubuntu的,
首先,运行以下命令: -

sudo a2enmod rewrite

然后,编辑文件/etc/apache2/sites-available/000-default.conf使用nano或vim的使用这个命令: -

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

然后在000-default.conf文件,该行之后添加此DocumentRoot /var/www/html 。 如果你的根html目录是其他的东西,然后写: -

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

所做的一切后,重新启动Apache使用命令sudo service apache2 restart



Answer 5:

最可能的是,设置AllowOverride设置为无。 在位于/ etc / apache2目录apache2.conf目录节

尝试将它设置为所有的AllowOverride



Answer 6:

只要遵循三个步骤

  1. 使用下面的命令启用mode_rewrite

    须藤a2enmod重写

密码将被要求。 因此,输入您的密码

  1. 更新000-default.conf或位于/ etc / apache2的/网站可用/目录default.conf文件。 你不能直接对其进行编辑。 因此使用下面的命令来打开

    须藤gedit中/etc/apache2/sites-available/000-default.conf

或sudo gedit中/etc/apache2/sites-available/default.conf

你会得到

的DocumentRoot在/ var / www / html等

要么

的DocumentRoot在/ var / WWW

线。 添加以下后的代码。

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

使用户如在你的文件的目录路径的标签相同。

  1. 使用下面的命令重新启动Apache服务器

    须藤服务的Apache2重启



Answer 7:

根据我的经验,在/ var / WWW /目录指令防止子文件夹虚拟主机的指令。 所以,如果你曾经尝试所有的建议,仍然没有工作,你正在使用virtualhosts试试这个;

1 -确保您有AllowOverride All的指令/etc/apache2/sites-available/example.com.conf

2 -检查/ var / WWW /指南指示在/etc/apache2/apache2.conf (可能在线路164),它看起来像;

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

如果存在AllowOverride None指令将其更改为AllowOverride All或只是逃避线



Answer 8:

默认情况下,Apache的禁止使用.htaccess文件应用重写规则,所以

第1步-启用了mod_rewrite(如果未启用)首先,我们需要激活mod_rewrite的。 它的问世,但不是用干净的Apache 2的安装启用。

$ sudo a2enmod rewrite

这将激活模块或提醒您该模块已启用。 为了把这些更改生效,重新启动Apache。

$ sudo systemctl restart apache2

mod_rewrite的现已全面启用。 在下一步,我们将建立,我们将用它来定义重定向重写规则.htaccess文件。

第2步-设置的.htaccess使用nano或你喜欢的文本编辑器打开默认的Apache配置文件。

$ sudo nano /etc/apache2/sites-available/000-default.conf

在这个文件中,你会发现从第一个线的块。 内部的块,添加以下新的块,以便您的配置文件看起来像下面这样。 确保所有的块来适当地缩进。

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

<VirtualHost *:80>
    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    . . . 
</VirtualHost>

保存并关闭文件。 为了把这些更改生效,重新启动Apache。

$ sudo systemctl restart apache2

完成。 你.htacess应该工作。 此链接实际上可能帮助别人 https://www.digitalocean.com/community/tutorials/how-to-rewrite-urls-with-mod_rewrite-for-apache-on-ubuntu-16-04



Answer 9:

WampServer打开WampServer托盘图标---->阿帕奇---> Apache模块---> rewrite_module



Answer 10:

使用RewriteBase / {文件夹} /在你的.htaccess



文章来源: .htaccess not working apache