温馨提示×

apache2如何开启 rewrite

小樊
36
2026-10-11 01:31:34
栏目: 编程语言

在 Apache2 中开启 rewrite(URL 重写)通常包含以下几个步骤,适用于 Ubuntu / Debian / CentOS 等常见系统。


一、启用 rewrite 模块

Ubuntu / Debian

sudo a2enmod rewrite
sudo systemctl restart apache2

CentOS / RHEL

通常 mod_rewrite 默认已编译,只需确保配置中存在:

LoadModule rewrite_module modules/mod_rewrite.so

然后重启:

sudo systemctl restart httpd

二、修改 Apache 配置,允许 .htaccess 重写

1. 虚拟主机配置方式(推荐)

编辑你的虚拟主机文件(如 /etc/apache2/sites-enabled/000-default.conf):

<VirtualHost *:80>
    DocumentRoot /var/www/html

    <Directory /var/www/html>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

然后重启 Apache:

sudo systemctl restart apache2

2. 如果使用 .htaccess

在网站根目录创建或编辑 .htaccess:

RewriteEngine On
RewriteRule ^test$ index.php [L]

⚠️ 注意:
必须设置 AllowOverride All,否则 .htaccess 不生效。


三、常见示例

隐藏 index.php(如 ThinkPHP / Laravel)

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,L]

四、验证是否生效

  1. 查看模块是否启用:
apache2ctl -M | grep rewrite
  1. 访问被重写的 URL 测试。

如果你能提供:

  • 操作系统
  • Apache 版本
  • 使用框架(如 Laravel / ThinkPHP / WordPress)

我可以给你更精确的配置示例。

0 踩