如何在Apache 2.4上启用mod_rewrite?

2022-08-30 22:45:40

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

我已经尝试过这个:

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

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


答案 1

我找到了知道模块是否已加载的方法,以下是列出启用的模块的命令:

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

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

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

这是因为我正在处理该文件中的主机。但它可以在 中完成,也可以在 包含的任何其他文件中完成httpd.conf.confhttpd.conf

谢谢。。。


答案 2

Apache2附带了可执行文件,这将完成符号链接conf文件的所有“脏工作”。a2enmoda2dismod

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

例如,您可以使用命令启用重写模块

$ a2enmod rewrite

推荐