为了账号安全,请及时绑定邮箱和手机立即绑定

如何为Apache2.2启用mod_rewrite

如何为Apache2.2启用mod_rewrite

拉风的咖菲猫 2019-06-01 14:25:51
如何为Apache2.2启用mod_rewrite我在Vista的机器上安装了新的Apache2.2,一切正常,除了MOD重写。我没有评论LoadModule rewrite_module modules/mod_rewrite.s但是我重写的规则都不起作用,即使是像这样简单的规则RewriteRule not_found %{DOCUMENT_ROOT}/index.php?page=404我使用的所有规则都在我的主机上工作,所以它们应该没问题,所以我的问题是,Apache配置中有什么隐藏的东西可以阻止mod重写吗?
查看完整描述

4 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

为了使用mod_rewrite您可以在终端中键入以下命令:

sudo a2enmod rewrite

重新启动apache2之后

sudo /etc/init.d/apache2 restart

sudo service apache2 restart

或者按照新的统一系统控制方式

sudo systemctl restart apache2

然后,如果您愿意,可以使用以下内容.htaccess档案。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

上述.htaccess文件(如果放在DocumentRoot)将所有流量重定向到index.php文件中的DocumentRoot除非文件存在。

因此,假设您有以下目录结构,httpdocs是DocumentRoot

httpdocs/
    .htaccess
    index.php
    images/
        hello.png
    js/
        jquery.js
    css/
        style.css
includes/
    app/
        app.php

在httpdocs中存在的任何文件都将使用.htaccess然而,上面显示的其他一切都将被重定向到httpdocs/index.php..中的应用程序文件includes/app将无法进入。


查看完整回答
反对 回复 2019-06-01
?
函数式编程

TA贡献1807条经验 获得超9个赞

对于我的处境,我

RewriteEngine On

在我的.htaccess,随着模块的加载,它无法工作。

解决我的问题的方法是将vhost条目编辑到inlcude。

AllowOverride all

<Directory>有关站点的部分。


查看完整回答
反对 回复 2019-06-01
?
桃花长相依

TA贡献1860条经验 获得超8个赞

试着设置:AllowOverride All.


第二个最常见的问题是没有启用MOD重写:a2enmod rewrite然后重启Apache。


查看完整回答
反对 回复 2019-06-01
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

如果没有上述工作,请尝试编辑/etc/apache2/site-启用/000-默认

几乎在你能找到的顶端

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

更改AllowOverride NoneAllowOverride All

这对我有用


查看完整回答
反对 回复 2019-06-01
  • 4 回答
  • 0 关注
  • 1116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信