易优CMS伪静态规则配置方法汇总

一、前言

不同服务器、虚拟空间所运行的 PHP 环境各不相同,目前主流的 Web 服务器主要分为 Nginx、Apache、IIS 及其他类型。下面分别介绍在各类环境下如何去掉 URL 中的 index.php 字符,实现伪静态访问。

注意事项:配置完成后,请记得在管理后台清除缓存;部分 ECS 服务器可能还需要重启 Nginx 等服务才能生效。

二、IIS 服务器

IIS 环境下的配置方法,可参考易优官方问答文档:

https://www.eyoucms.com/ask/list_1_10/4924.html

三、Nginx 服务器

1. 安装在网站根目录

在原有的 Nginx 重写文件中新增以下代码:

location / {
    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php?s=/$1 last;
        break;
    }
}

2. 安装在二级目录

如果易优安装在二级目录下,请使用以下配置(将 二级目录名 替换为实际目录名):

location /二级目录名/ {
    if (!-e $request_filename) {
        rewrite ^/二级目录名/(.*)$ /二级目录名/index.php?s=/$1 last;
        break;
    }
}

3. 根目录与二级目录同时安装

类似阿里云空间这类场景,同一虚拟主机的根目录和二级目录都安装了易优,则需同时配置两段规则:

location / {
    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php?s=/$1 last;
        break;
    }
}

location /二级目录名/ {
    if (!-e $request_filename) {
        rewrite ^/二级目录名/(.*)$ /二级目录名/index.php?s=/$1 last;
        break;
    }
}

四、Apache 服务器

Apache 环境默认会自动隐藏 index.php 入口,无需额外配置。

如果发现没有生效,请依次排查以下步骤:

1. 检查根目录 .htaccess 文件

确认根目录下的 .htaccess 文件是否包含以下核心代码:

<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]
</IfModule>

2. 尝试调整重写规则

如果仍未隐藏,可尝试将 RewriteRule 改为以下写法(加问号):

RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]

或者修改为:

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

3. 检查 URL 重写模块并重启服务

若以上方法仍无效,请检查 Apache 是否开启了 URL 重写模块 rewrite_module,确认开启后重启服务即可生效。



1-1P612144U3350.jpg


分享: