如何用.htaccess将PHP动漫播放页URL优化为友好格式?
PHP动漫播放页面URL优化方案
完全可以实现你要的URL优化,而且用户通过新URL访问时,依然能正常获取ID并加载页面内容,具体实现步骤如下:
1. 配置URL重写规则
根据你使用的服务器类型,添加对应的重写规则:
Apache服务器
在网站根目录创建.htaccess文件,写入以下规则:
RewriteEngine On # 将 /watch/animename/id 重定向到实际的 watch.php RewriteRule ^watch/([^/]+)/(\d+)$ /watch/watch.php?title=$1&id=$2 [L,QSA]
([^/]+)匹配动漫名称部分(支持除斜杠外的任意字符)(\d+)匹配数字类型的ID[L,QSA]表示这是最后一条规则,并且保留额外的查询参数(比如如果有&ep=10这类参数也能正常传递)
Nginx服务器
在你的站点server配置块中添加以下规则:
location /watch { rewrite ^/watch/([^/]+)/(\d+)$ /watch/watch.php?title=$1&id=$2 last; }
2. 在PHP页面中获取参数
重写规则会自动把新URL中的animename和id映射为原来的GET参数,所以你在watch.php里依然可以用原来的方式获取:
$animeId = $_GET['id']; $animeTitle = $_GET['title']; // 后续用$animeId加载对应动漫内容即可
3. 优化动漫名称的URL格式
为了让URL更规范,生成新URL时需要把动漫标题转换成URL友好的格式:
- 转为小写
- 把空格替换为连字符
- - 移除特殊字符(比如
!@#$等)
举个例子,"Attack on Titan"要处理成attack-on-titan,这样生成的URL就是site.com/watch/attack-on-titan/123
注意事项
- Apache需要确保开启了
mod_rewrite模块,Nginx默认支持rewrite规则 - 生成新URL和重写解析的规则要统一,避免出现404错误
- 如果你的ID不是纯数字,可以把规则中的
(\d+)改成([^/]+)来匹配任意字符类型的ID
内容的提问来源于stack exchange,提问作者PHP NOOB
相关产品推荐
相关产品推荐

