在使用PHPCMS构建网站时,有时我们可能希望隐藏URL中的.php
后缀,使网址看起来更加简洁和美观,这不仅提升了用户体验,还可能在某些情况下提高网站的安全性,本文将详细介绍如何在PHPCMS中去掉PHP域名后缀,包括通过配置服务器环境和修改PHPCMS代码两种方式。
云服之家,国内最专业的云服务器虚拟主机域名商家信息平台
配置服务器环境
要去掉PHP域名后缀,首先需要确保服务器环境支持重写规则(Rewrite Rules),以下是在Apache和Nginx两种常见服务器环境中配置重写规则的方法。
Apache服务器
在Apache服务器上,可以通过配置.htaccess
文件来实现URL重写,确保mod_rewrite
模块已启用,然后在网站的根目录下创建或编辑.htaccess
文件,添加以下规则:
<IfModule mod_rewrite.c> RewriteEngine On # 检查请求的文件或目录是否存在 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 如果不存在,则重写URL,去掉.php后缀 RewriteRule ^(.*)\.php$ $1 [L,R=301] </IfModule>
上述规则将检查请求的文件或目录是否存在,如果不存在,则将URL中的.php
后缀去掉,并返回重写后的URL。
Nginx服务器
在Nginx服务器上,可以通过修改配置文件来实现URL重写,打开Nginx配置文件(通常位于/etc/nginx/nginx.conf
或/etc/nginx/sites-available/default
),在server块中添加以下配置:
server { listen 80; server_name example.com; root /var/www/html; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据实际PHP版本修改 fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; } }
上述配置中,try_files
指令会尝试访问请求的文件或目录,如果都不存在,则将请求传递给index.php
,这样,即使URL中没有.php
后缀,请求也会被正确地传递到PHPCMS进行处理。
修改PHPCMS代码
除了配置服务器环境外,还需要对PHPCMS的某些代码进行微调,以确保URL重写后能够正常工作,以下是具体的步骤:
修改全局配置文件
打开PHPCMS的全局配置文件(通常是config/config_global.php
),找到$config['rewritestyle']
配置项,将其设置为1
以启用URL重写功能:
$config['rewritestyle'] = 1; // 启用URL重写功能
修改入口文件
PHPCMS的入口文件(通常是index.php
)负责处理所有请求,为了兼容去掉.php
后缀的URL,需要修改入口文件的路径检测逻辑,找到入口文件中的以下代码段:
if (file_exists($path . 'index.php')) { $page = 'index'; // 首页或默认页面名称,根据实际情况修改 } else { ... } // 其他逻辑处理代码省略... } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } { $page = ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ?> ? > `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>` `?>``}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...}...{ $page = ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ... ; ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > ? > { $page = ...; // 其他逻辑处理代码省略...}}?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`?>`{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = ...; // 其他逻辑处理代码省略...}}?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}>?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}>?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}>?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}>?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}>?>``{ $page = 'index'; // 首页或默认页面名称,根据实际情况修改}}>?>``{ $page = 'index'; // 首页或默认页面名称