如何在 Apache 2.4 上启用 mod_rewrite?
How to enable mod_rewrite on Apache 2.4?
我正在使用 Wordpress 并想启用漂亮的网址功能,但它们不起作用,我认为这是因为 mod_rewrite,但我不知道如何启用它CentOS 7下的Apache 2.4...
我已经试过了:
grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite
但是什么都没有...
还想知道它加载所有 Apache 模块有什么不好的后果还是不好的做法?
Apache2 附带可执行文件 a2enmod
和 a2dismod
,它们将完成所有 "dirty work" 的符号链接配置文件。
在基于 Debian 的发行版上,通常的位置是 /etc/apache/mods-available/
。以下是 .conf 配置文件(如果适用)和每个模块的 .load 文件,带有 LoadModule
Apache2 指令。如果在 /etc/apache2/mods-enabled/
.
中存在指向其 .load 文件的符号链接,则启用模块
例如,您可以使用命令启用重写模块
$ a2enmod rewrite
我找到了知道模块是否加载的方法,这里是列出启用模块的命令:
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
或包含在 httpd.conf
中的任何其他 .conf
文件中完成
谢谢...
# nano /etc/httpd/conf/httpd.conf
找到
follow (AllowOverride none)
并更改它
(AllowOverride All)
对于重写模块,只需检查这个与在 wamp apache 中启用重写模块相关的 youtube 分步教程 https://youtu.be/xIspOX9FuVU?t=1m43s
Wamp 服务器图标 -> Apache -> Apache 模块并标记为检查重写模块选项
之后你可以使用url重写
在httpd.conf中搜索AllowOverride None并将其更改为AllowOverride全部,然后重启apache
是的,从 "Override None" 更改为 "Override All" 使其生效:
Debian 10 配置文件在这里:
/etc/apache2/apache2.conf
我不知道安全风险,但它有效!
仅限 CentO 7 :
a2enmod 是一个 Debian/Ubuntu 命令。您需要为 CentOS 服务器编辑 Apache 配置 文件。
您要做的是编辑 /etc/httpd/conf/httpd.conf 文件并确保 AllowOverride 标志因为块从 None 更改为 All.
基本上应该是这样的:
(注意:默认httpd.conf文件中有很多注释行)
<目录“/var/www/html”>
允许覆盖所有
目录>
我正在使用 Wordpress 并想启用漂亮的网址功能,但它们不起作用,我认为这是因为 mod_rewrite,但我不知道如何启用它CentOS 7下的Apache 2.4...
我已经试过了:
grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite
但是什么都没有... 还想知道它加载所有 Apache 模块有什么不好的后果还是不好的做法?
Apache2 附带可执行文件 a2enmod
和 a2dismod
,它们将完成所有 "dirty work" 的符号链接配置文件。
在基于 Debian 的发行版上,通常的位置是 /etc/apache/mods-available/
。以下是 .conf 配置文件(如果适用)和每个模块的 .load 文件,带有 LoadModule
Apache2 指令。如果在 /etc/apache2/mods-enabled/
.
例如,您可以使用命令启用重写模块
$ a2enmod rewrite
我找到了知道模块是否加载的方法,这里是列出启用模块的命令:
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
或包含在 httpd.conf
.conf
文件中完成
谢谢...
# nano /etc/httpd/conf/httpd.conf
找到
follow (AllowOverride none)
并更改它
(AllowOverride All)
对于重写模块,只需检查这个与在 wamp apache 中启用重写模块相关的 youtube 分步教程 https://youtu.be/xIspOX9FuVU?t=1m43s
Wamp 服务器图标 -> Apache -> Apache 模块并标记为检查重写模块选项
之后你可以使用url重写
在httpd.conf中搜索AllowOverride None并将其更改为AllowOverride全部,然后重启apache
是的,从 "Override None" 更改为 "Override All" 使其生效:
Debian 10 配置文件在这里:
/etc/apache2/apache2.conf
我不知道安全风险,但它有效!
仅限 CentO 7 : a2enmod 是一个 Debian/Ubuntu 命令。您需要为 CentOS 服务器编辑 Apache 配置 文件。
您要做的是编辑 /etc/httpd/conf/httpd.conf 文件并确保 AllowOverride 标志因为块从 None 更改为 All.
基本上应该是这样的: (注意:默认httpd.conf文件中有很多注释行)
<目录“/var/www/html”> 允许覆盖所有 目录>