如何在Apache 2.4上启用mod_rewrite?

Jon*_*ano 12 php apache wordpress mod-rewrite centos7

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

我已经试过了:

grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite
Run Code Online (Sandbox Code Playgroud)

但没有...也想知道加载所有Apache模块有任何不良后果或是不好的做法?

Jon*_*ano 20

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

apachectl -M | sort
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

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

<Directory /var/www/mysite>
    Options Indexes FollowSymLinks
    Require all granted
    AllowOverride All
</Directory>
Run Code Online (Sandbox Code Playgroud)

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

谢谢...


mar*_*ful 9

Apache2中附带的可执行文件a2enmod,并a2dismod会做符号链接conf文件中所有的"脏活".

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

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

$ a2enmod rewrite
Run Code Online (Sandbox Code Playgroud)


小智 9

# nano /etc/httpd/conf/httpd.conf
Run Code Online (Sandbox Code Playgroud)

follow (AllowOverride none) 
Run Code Online (Sandbox Code Playgroud)

并改变它

(AllowOverride All) 
Run Code Online (Sandbox Code Playgroud)