使用Apache的mod_rewrite

2020年12月31日19:42:00 发表评论 64 次浏览

Apache模块mod_rewrite是一种灵活而强大的方法, 可以重定向流量并重写网站的URL。它也是许多其他软件包(包括WordPress和Laravel PHP框架)的必需模块。了解如何在云服务器上安装和启用mod_rewrite。

要求

  • 具有Linux的云服务器(CentOS 7或Ubuntu 16.04)。
  • Apache已安装并正在运行。

注意:默认情况下, Apache已在标准Linux安装上安装并运行。如果你的服务器是使用最小安装创建的, 则在继续之前, 你将需要安装和配置Apache。

CentOS的7

的mod_rewrite默认情况下, CentOS 7上启用了Apache模块。如果发现它尚未启用, 则可以通过打开基本模块配置文件进行编辑来启用它:

sudo nano /etc/httpd/conf.modules.d/00-base.conf

添加以下行:

LoadModule rewrite_module modules/mod_rewrite.so

保存并退出文件。

接下来, 打开站点的主要Apache配置文件进行编辑:

sudo nano /etc/httpd/conf.d/example.com.conf

找到主要虚拟主机命令块:

<VirtualHost *:80>
ServerName example.com
    <Directory "/var/www/example.com/html">
    AllowOverride None
    </Directory>
</VirtualHost>

在里面目录部分, 更改AllowOverrideto所有:

AllowOverride All

如果没有目录封锁虚拟主机命令块, 添加以下内容:

<Directory "/var/www/example.com/html">
    AllowOverride All
    </Directory>

确保使用正确的网站文档根目录路径。

保存并退出文件。重新启动Apache以使更改生效:

sudo systemctl restart httpd

Ubuntu 16.04

启用mod_rewrite使用命令:

sudo a2enmod rewrite

如果尚未启用该模块, 则将启用该模块。重新启动Apache以使更改生效:

sudo systemctl restart apache2

接下来, 打开站点的主要Apache配置文件进行编辑:

sudo nano /etc/apache2/sites-available/example.com.conf

找到主要虚拟主机命令块:

<Directory /var/www/example.com/html/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

更改AllowOverrideto所有:

AllowOverride All

如果没有目录封锁虚拟主机命令块, 添加以下内容:

<Directory /var/www/example.com/html/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

确保使用正确的网站文档根目录路径。

保存并退出文件。重新启动Apache以使更改生效:

sudo systemctl restart apache2
一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: