帝国伪静态Apache的Rewrite如何设置

帝国CMS支持伪静态功能,这对于SEO优化非常有帮助。在Apache环境下设置伪静态需要通过.htaccess文件中的RewriteRule指令来实现。下面是针对帝国CMS在Apache服务器上设置伪静态的基本步骤和示例。

步骤 1: 开启重写模块

确保你的Apache服务器已经开启了mod_rewrite模块。可以通过以下命令检查是否已启用:

sudo a2enmod rewrite

步骤 2: 创建或编辑 .htaccess 文件

在你的网站根目录下创建或编辑.htaccess文件。如果文件不存在,可以新建一个。

步骤 3: 添加重写规则

.htaccess文件中添加以下内容作为基础框架:

# 开启重写引擎 RewriteEngine On  # 设置重写的基路径 RewriteBase /  # 错误页面设置 ErrorDocument 404 /404.html  # 伪静态规则 # 以下是一些常见的伪静态规则示例  # 信息列表 RewriteCond %{QUERY_STRING}^(.*)$ RewriteRule ^listinfo-(.+?)-(.+?).html$ /e/action/ListInfo.php?classid=$1&page=$2 [L]  # 文章内容页 RewriteRule ^news-(.+?)-(.+?).html$ /e/action/ShowArticle.php?aid=$1&page=$2 [L]  # 栏目列表页 RewriteRule ^list-(.+?)-(.+?).html$ /e/action/ListClass.php?classid=$1&page=$2 [L]  # 标签列表 RewriteRule ^tag-(.+?)-(.+?).html$ /e/action/ListTag.php?tag=$1&page=$2 [L]  # 自定义规则 # 例如,如果需要自定义一个URL结构,可以添加类似下面的规则 # RewriteRule ^custom-(.+?)-(.+?).html$ /e/action/CustomAction.php?param1=$1&page=$2 [L]  # 防止直接访问脚本文件 RewriteRule ^e/.*\.php$ - [F,L]  # 将所有请求重写到index.php RewriteRule (.*) index.php [L]

解释

  • RewriteEngine On 启用重写引擎。
  • RewriteBase / 设置重写的基路径,如果是子目录,需要设置正确的路径。
  • ErrorDocument 404 /404.html 设置404错误页面。
  • RewriteRule 指令用于定义重写规则。
    • ^listinfo-(.+?)-(.+?).html$ 表示匹配以listinfo-开头,后跟数字和-,再跟数字和.html结尾的URL。
    • /e/action/ListInfo.php?classid=$1&page=$2 将其重写为实际的脚本路径,并传递参数。
  • 最后的RewriteRule (.*) index.php [L] 是一个通用规则,将所有未匹配的请求重定向到index.php
wx.jpg ywfw.jpg
热门