在 Ubuntu 下使用 Apache 设置“伪静态”(通常指通过 .htaccess 或虚拟主机配置实现 URL Rewrite),一般步骤如下:
sudo a2enmod rewrite
sudo systemctl restart apache2
编辑你的站点配置文件(示例):
sudo nano /etc/apache2/sites-available/000-default.conf
在 <VirtualHost *:80> 中添加或修改:
<Directory /var/www/html>
AllowOverride All
</Directory>
如果是其他目录,请替换为你的网站根目录
sudo systemctl restart apache2
在网站根目录创建或编辑 .htaccess 文件:
nano /var/www/html/.htaccess
RewriteEngine On
RewriteRule ^article/([0-9]+)\.html$ article.php?id=$1 [L]
访问:
/article/123.html
实际指向:
/article.php?id=123
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
AllowOverride Allmod_rewrite 已启用.htaccess(前面有点)sudo tail -f /var/log/apache2/error.log
直接在虚拟主机中写规则:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<Directory /var/www/html>
AllowOverride None
Require all granted
</Directory>
RewriteEngine On
RewriteRule ^news/([0-9]+)$ news.php?id=$1 [L]
</VirtualHost>
如果你用的是 WordPress / ThinkPHP / Laravel / Discuz 等程序,可以告诉我,我可以给你对应的伪静态规则。