Apache服务器配置伪静态,适配各类CMS

伪静态就是把动态URL(带?
id=123
这类参数)改写成静态形式(如/123.html),既利于搜索引擎收录,也方便用户记忆。
Apache下实现伪静态主要靠mod_rewrite模块和.htaccess文件。
本文从零开始,带你完成模块开启、规则配置、CMS适配和效果验证,最终目标是让各类CMS在Apache环境下正常使用伪静态链接

动手前先确认两件事

不是所有Apache都能直接跑伪静态,先确认环境是否就绪。

  • Apache已安装且能正常访问:浏览器打开服务器IP或域名,能看到默认页或你的网站首页。
  • 网站根目录可写:后续要创建或修改.htaccess文件,需要对该目录有写权限。
  • 确认Apache版本:执行httpd -vapache2 -v,记下版本号,不同版本配置文件路径略有差异。

启用mod_rewrite模块

伪静态的核心是mod_rewrite,默认可能没开。

Linux(编译安装或yum/apt安装)

编辑主配置文件,通常位于/etc/httpd/conf/httpd.conf/etc/apache2/apache2.conf
找到下面这行,去掉前面的#

LoadModule rewrite_module modules/mod_rewrite.so

如果找不到这行,说明模块未编译进Apache,需要重新编译或安装对应包。

允许.htaccess生效

在同一个配置文件中,找到网站目录的块,把AllowOverride None改为AllowOverride All


    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted

这一步不做,.htaccess里的规则不会生效,是新手最常见的坑。

改完保存,重启Apache:

systemctl restart httpd    # CentOS/RHEL
systemctl restart apache2  # Ubuntu/Debian

编写.htaccess伪静态规则

在网站根目录新建或编辑.htaccess文件,写入对应CMS的规则。

WordPress

WordPress后台设置固定链接后,会自动生成规则。
手动添加如下:


RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

织梦DedeCMS

RewriteEngine On
RewriteBase /
RewriteRule ^plus/list-([0-9]+)\.html$ /plus/list.php?tid=$1
RewriteRule ^plus/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3
RewriteRule ^plus/view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?aid=$1&pageno=$2

Discuz

RewriteEngine On
RewriteBase /
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page%3D$3&page=$2

规则必须与CMS后台的伪静态设置一致,否则会跳转到错误页面。

常见报错与避坑

配置过程中容易遇到几个典型问题。

  • 访问伪静态链接返回404:检查AllowOverride是否改为All,以及.htaccess文件名是否正确(前面有个点)。
  • 规则写了但无效:确认mod_rewrite已加载,可用httpd -M | grep rewrite查看。
  • 中文URL乱码:在.htaccess顶部加AddDefaultCharset UTF-8,并确保规则中不直接写中文。
  • 服务器开了CDN:CDN可能缓存了旧规则,需要刷新缓存后再测试。

验证伪静态是否生效

打开浏览器,访问一个原本带参数的动态链接,如果能自动跳转成静态形式,且页面内容正常显示,说明配置成功。

也可以用命令行快速验证:

curl -I http://你的域名/静态链接.html

返回HTTP/1.1 200 OK即表示正常;
若返回404,回到上一节排查。

关于规则来源的提醒

不同CMS版本和Apache版本的默认规则可能有差异,建议以你所用的CMS官方文档或后台生成的伪静态规则为准
本文示例适用于常见场景,实际部署时请结合服务器环境微调。

常见疑问

.htaccess文件不生效怎么办?
先确认Apache配置中对应目录的AllowOverrideAll,再检查文件权限,通常设为644即可,不要用777

伪静态和纯静态有什么区别?
伪静态只是URL重写,实际仍由PHP动态生成页面;纯静态是提前生成HTML文件。伪静态配置简单,适合大多数CMS。

多个CMS共用一个Apache怎么办?
每个网站使用独立的虚拟主机配置,并分别设置AllowOverride All.htaccess文件放在各自网站根目录即可。

如果按上述步骤操作后仍有异常,优先回看“常见报错与避坑”部分,多数问题都能在那里找到原因。

分享到:
上一篇
Nginx拦截恶意爬虫,保护CMS服务器资源
下一篇
MySQL数据库慢查询优化,解决网站卡顿
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意