如何在Apache 2.4上启用mod_rewrite?

时间:2015-06-15 21:56:33

标签: php wordpress apache mod-rewrite centos7

我正在使用Wordpress并希望启用漂亮的网址功能,但它们不起作用,我认为这是因为mod_rewrite,但我不知道如何在CentOS 7下的Apache 2.4上启用它。 ..

我已经尝试过了:

grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite

但没有...... 还想知道加载所有Apache模块有什么不良后果还是不好的做法?

7 个答案:

答案 0 :(得分:19)

我找到了解模块是否加载的方法,这里是命令列出启用的模块:

apachectl -M | sort

它将按字母顺序列出所有已启用的模块。

Wordpress有一个.htaccess但是默认,它允许rewrite_module使用它:

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

我唯一需要做的就是将其添加到/etc/httpd/conf.d/vhosts.conf

的vhost.conf文件中
<Directory /var/www/mysite>
    Options Indexes FollowSymLinks
    Require all granted
    AllowOverride All
</Directory>

那是因为我正在处理该文件中的主机。但可以在httpd.conf.conf

中包含的任何其他httpd.conf文件中完成

...谢谢

答案 1 :(得分:9)

# nano /etc/httpd/conf/httpd.conf

找到

follow (AllowOverride none) 

并改变它

(AllowOverride All) 

答案 2 :(得分:7)

Apache2附带了可执行文件a2enmoda2dismod,可执行所有&#34;脏工作&#34;符号链接conf文件。

在基于Debian的发行版上,通常的位置是/etc/apache/mods-available/。以下是.conf配置文件(如果适用)和每个模块的.load文件以及LoadModule Apache2指令。如果/etc/apache2/mods-enabled/中的.load文件存在符号链接,则启用模块。

例如,您可以使用命令

启用重写模块
$ a2enmod rewrite

答案 3 :(得分:2)

httpd.conf 中,搜索 AllowOverride无并将其更改为 AllowOverride All ,然后重新启动apache

答案 4 :(得分:0)

是的,从“无覆盖”更改为“全部覆盖”:

在Debian 10上的配置文件在这里:

/etc/apache2/apache2.conf

我不知道安全隐患,但是可以!

答案 5 :(得分:0)

仅适用于CentO 7: a2enmod Debian / Ubuntu 命令。您需要为 CentOS 服务器编辑 Apache配置文件。

您想要做的是编辑 /etc/httpd/conf/httpd.conf 文件,并确保已更改该块的 AllowOverride 标志从全部

基本上应该是这样的: (注意:默认的httpd.conf文件中有很多注释行)

<目录“ / var / www / html”> 允许全部覆盖

答案 6 :(得分:-2)

用于重写模块只需检查此youtube一步一步的教程,与wamp apache https://youtu.be/xIspOX9FuVU?t=1m43s中的启用重写模块有关.Wamp服务器图标 - &gt; Apache - &gt; Apache模块并标记为检查重写模块选项
之后你可以使用网址重写