温馨提示×

ubuntu apache2怎么开伪静态

小樊
37
2026-09-08 04:40:15
栏目: 智能运维

在 Ubuntu 上用 Apache2 开启“伪静态”(通常是用 .htaccess + mod_rewrite 实现 URL 重写),一般按下面步骤来:


一、启用 rewrite 模块

sudo a2enmod rewrite
sudo systemctl restart apache2

二、修改站点配置,允许 .htaccess 生效

Apache 默认可能不允许 .htaccess 覆盖配置。

1. 编辑站点配置

比如:

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

或你的虚拟主机文件。

<VirtualHost *:80> 里加上:

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

/var/www/html 改成你的网站根目录

2. 重启 Apache

sudo systemctl restart apache2

三、创建 .htaccess 伪静态规则

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

nano /var/www/html/.htaccess

常见示例(ThinkPHP / 通用伪静态)

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

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>

四、常见坑

  1. AllowOverride 没开.htaccess 不生效
  2. 没重启 Apache
  3. 文件权限问题
    sudo chown -R www-data:www-data /var/www/html
    
  4. 查看错误日志:
    tail -f /var/log/apache2/error.log
    

如果你用的是 ThinkPHP / Laravel / WordPress / 其他框架,可以告诉我,我给你对应的具体伪静态规则。

0