温馨提示×

ubuntu apache2如何开启重写

小樊
36
2026-10-02 06:17:41
栏目: 智能运维

在 Ubuntu 上通过 Apache2 开启 URL Rewrite(重写),通常步骤如下:


一、启用 rewrite 模块

sudo a2enmod rewrite

启用后重启 Apache:

sudo systemctl restart apache2

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

1. 修改虚拟主机配置(推荐)

编辑你的站点配置(示例):

sudo nano /etc/apache2/sites-available/000-default.conf

在 <VirtualHost *:80> 中添加或修改:

<Directory /var/www/html>
    AllowOverride All
</Directory>

如果你用的是其他目录,改成对应路径即可。

保存后重启 Apache:

sudo systemctl restart apache2

2. 或修改 Apache 主配置(不推荐全局)

sudo nano /etc/apache2/apache2.conf

找到:

<Directory /var/www/>
    AllowOverride None

改为:

AllowOverride All

然后重启 Apache。


三、使用 .htaccess 示例

在网站根目录创建 .htaccess:

sudo nano /var/www/html/.htaccess

示例内容(隐藏 index.php):

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

四、常见问题排查

1. 重写不生效

  • 确认 rewrite 模块已启用
  • 确认 AllowOverride All
  • 确认 .htaccess 在正确目录

2. 查看是否启用模块

apache2ctl -M | grep rewrite

看到 rewrite_module 即成功。


如果你是用 Laravel / ThinkPHP / WordPress 等框架,我也可以给你对应的具体配置。

0 踩