首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用oxid函数重定向SEO

用oxid函数重定向SEO
EN

Stack Overflow用户
提问于 2016-06-17 06:40:53
回答 2查看 764关注 0票数 0

当有人打开这个链接时,我正在尝试: urlwww.example.com/invite/1234randomhashtag/url

将重定向到:

www.example.cloud/index.php?cl=register_new_user&fnc=register&hash=1234randomhashtag

现在,这可以很容易地用PHP完成。

然而,我也找到了奥苏特类。这门课能做到这一点吗?有用吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-19 02:45:02

Oxid不支持您通过改变最初的oxid路由机制的方式,他们将为您工作。有一种方法可以在oxid管理后端的常规设置中设置静态重定向(请参阅SEO选项卡)。但它们不支持通配符(/invite/*),就像您所需要的那样。

从理论上讲,如果您真的想在oxid模块中找到这个解决方案(为了避免对核心进行黑客攻击,并将其捆绑在一个模块中),您可以扩展几个oxid函数中的一个,然后调用oxid,然后到达基于mvc的路由逻辑,并在此时手动重定向。基本上,这可以在被调用的每个核心函数中完成,然后再路由到404页面(oxseo解码器::processSeoCall)

考虑到oxid列出的不可重载类的官方信息,您应该能够扩展oxid控制::start(甚至oxseo解码器::processSeoCall)并添加如下内容:

代码语言:javascript
复制
if(preg_match("/\/invite\/.*/", $_SERVER['REQUEST_URI'])){

    $randomHash =  basename($_SERVER['REQUEST_URI']);
    oxRegistry::getUtils()->redirect($this->getConfig()->getShopURL().'index.php?cl=register_new_user&fnc=register&hash='.$randomHash , false, 301);

}

无论如何,我认为最简单、最快和最具表现力的方法是在商店根目录中的.htaccess文件中设置url重定向。

下列措施应能发挥作用:

代码语言:javascript
复制
RewriteRule    ^invite/([A-Za-z0-9-]+)/?$    index.php?cl=register_new_user&fnc=$1    [NC,L] 

您可以立即将该代码放在RewriteBase /下面的商店根目录中的.htaccess文件中。

我将重写规则与来自这篇文章的信息放在一起。

票数 2
EN

Stack Overflow用户

发布于 2016-06-18 19:27:59

OXID没有基于url部件的动态路由。

对于每个有效的SEO,数据库中都有一个SEO条目。

当有人使用您的邀请函数时,您可以生成一个SEO,并在几个月后删除Url。

或者,您需要稍微更改生成的urls,使其看起来如下:www.example.com/invite#1234随机标签,带有#,而不是/

然后解析$_SERVER["REQUEST_URI"]中的散列并设置变量或重定向到最终的URL

但是,在OXID之外,您仍然可以使用.htacess重写规则(我猜)或另一个php微框架来解决这个问题,比如在/invite/目录中运行"Slim“或"Lumen”,并将访问者重定向回商店。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37874774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档