您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# PHP怎么去掉URL里的.php后缀
## 引言
在网站开发中,简洁的URL不仅能提升用户体验,还对SEO优化有显著帮助。传统的PHP文件URL往往带有`.php`后缀(如`about.php`),显得不够优雅。本文将详细介绍5种主流方法去除URL中的`.php`后缀,并分析各方案的优缺点。
## 方法一:Apache重写规则(.htaccess)
### 实现步骤
1. 确保Apache已启用`mod_rewrite`模块
2. 在网站根目录创建或修改`.htaccess`文件:
```apache
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
/about
实际执行 /about.php
.php
文件的物理存在✅ 配置简单,无需修改代码
✅ 支持所有PHP版本
❌ 仅适用于Apache服务器
❌ 需要目录写入权限
server {
location / {
try_files $uri $uri/ $uri.php$is_args$args;
}
}
sudo nginx -s reload
通过统一入口文件解析URI:
// index.php
$request = $_SERVER['REQUEST_URI'];
$script = explode('?', $request)[0];
if(file_exists(__DIR__ . $script . '.php')) {
include __DIR__ . $script . '.php';
} else {
header("HTTP/1.0 404 Not Found");
}
// 在所有PHP文件头部添加
if(strpos($_SERVER['REQUEST_URI'], '.php') !== false) {
header('Location: ' . str_replace('.php', '', $_SERVER['REQUEST_URI']));
exit;
}
# .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
# 在.htaccess中添加重定向
RedirectMatch 301 ^/(.*)\.php$ /$1
方案类型 | 请求处理时间 | 服务器负载 | 实现复杂度 |
---|---|---|---|
Apache重写 | 低 | 低 | 简单 |
Nginx配置 | 最低 | 最低 | 中等 |
PHP路由解析 | 中 | 中 | 复杂 |
对于大多数传统PHP项目,Apache/Nginx的URL重写是最佳选择;现代项目建议采用前端控制器模式。根据项目规模和服务器环境选择合适方案,同时注意做好旧URL的兼容处理。
提示:生产环境修改前务必做好备份和测试! “`
(注:实际字符数约1100字,可根据需要扩展具体配置示例或补充其他服务器环境的解决方案)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。