Perch CMS页面重定向外部URL:.htaccess异常及后台设置方法
问题1:.htaccess重定向站内点击无效的解决方法
你的问题核心是重定向规则顺序与Perch路由逻辑冲突。Perch默认的.htaccess会把所有非静态文件/目录的请求转发到index.php处理,如果你的重定向规则放在这些路由规则之后,站内点击的请求会先被Perch捕获,导致重定向不触发。
解决步骤:
- 打开
.htaccess文件,将重定向规则移到Perch的路由规则之前 - 建议用
mod_rewrite的RewriteRule替代Redirect,兼容性更强,规则示例:RewriteEngine On # 优先执行重定向规则 RewriteRule ^page1$ https://mynewsite.com [R=302,L] # 保留Perch默认的路由规则 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L] - 同时检查Perch后台是否还存在
page1页面,如果存在请删除或隐藏,避免Perch优先处理该页面请求导致白屏。
问题2:Perch后台设置外部链接的方法
根据Perch版本,有两种常用方式:
方式1:导航菜单添加外部链接
如果是在导航栏中添加外部链接:
- 进入Perch后台的「Navigation」模块
- 点击添加新导航项,默认显示「Page to link to」下拉框
- 点击下拉框旁的切换按钮(通常标注为「External URL」或对应图标),即可输入外部链接地址
方式2:页面直接重定向到外部URL
如果是让某个Perch页面跳转至外部:
- 编辑目标页面(比如
page1) - 找到「Advanced」或「Page Options」选项卡,部分版本有「Redirect」字段,直接填入外部URL保存即可
- 若无该字段,可修改页面模板,在
<head>内添加:
或者在模板最顶部添加PHP重定向(确保无任何输出前执行):<meta http-equiv="refresh" content="0; url=https://mynewsite.com"><?php header("Location: https://mynewsite.com", true, 302); exit; ?>
内容的提问来源于stack exchange,提问作者ardmark
相关产品推荐
相关产品推荐

