我正在使用WordPress,并希望启用美化URL功能,但它们不起作用,我认为这可能是由于mod_rewrite引起的,但我不知道如何在CentOS 7下的Apache 2.4上启用它...
我已经尝试了这个方法:
grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite
但是没有任何反应。另外想知道加载所有Apache模块是否会有任何不良后果或者是不好的实践?
我正在使用WordPress,并希望启用美化URL功能,但它们不起作用,我认为这可能是由于mod_rewrite引起的,但我不知道如何在CentOS 7下的Apache 2.4上启用它...
我已经尝试了这个方法:
grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite
但是没有任何反应。另外想知道加载所有Apache模块是否会有任何不良后果或者是不好的实践?
我找到了一种方法来知道一个模块是否已加载,以下是列出启用的模块的命令:
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
文件中。
<Directory /var/www/mysite>
Options Indexes FollowSymLinks
Require all granted
AllowOverride All
</Directory>
那是因为我在那个文件中处理我的主机。但它可以在httpd.conf
或任何其他被包含到httpd.conf
的.conf
文件中完成。
谢谢...
Apache2带有可执行文件a2enmod
和a2dismod
,它们将完成符号链接设置配置文件的所有“脏活儿”。
在基于Debian的发行版中,通常位置是/etc/apache/mods-available/
。这里包含了.conf配置文件(适用时)和每个模块的.load文件,其中包含LoadModule
Apache2指令。如果在/etc/apache2/mods-enabled/
中存在指向其.load文件的符号链接,则启用该模块。
例如,要启用Rewrite模块,请使用以下命令:
$ a2enmod rewrite
# nano /etc/httpd/conf/httpd.conf
查找
follow (AllowOverride none)
并将其更改
(AllowOverride All)
仅适用于CentOS 7: a2enmod是一个Debian/Ubuntu命令。您需要编辑CentOS服务器的Apache配置文件。
您需要编辑/etc/httpd/conf/httpd.conf文件,并确保更改AllowOverride标志为所有。
基本上应该像这样: (注意:默认的httpd.conf文件中有许多注释行)
<Directory "/var/www/html"> AllowOverride All </Directory>
是的,从“覆盖无”更改为“覆盖所有”使其工作:
在Debian 10上,配置文件在这里:
/etc/apache2/apache2.conf
我不知道安全风险,但它能够工作!
如果您想使用重写模块,请查看此YouTube逐步教程,了解如何在Wamp Apache中启用重写模块https://youtu.be/xIspOX9FuVU?t=1m43s。
Wamp服务器图标 -> Apache -> Apache模块,并选中重写模块选项。
之后,您就可以使用URL重写了。