插件如何在WordPress中劫持URL? [关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插件如何在WordPress中劫持URL? [关闭]相关的知识,希望对你有一定的参考价值。
当然我总是可以编辑WordPress的.htaccess文件,但这会让我的WP插件有点不标准。相反,通过WordPress中的自定义插件劫持URL的方法是什么?
例如,假设我想构建一个精心制作的产品目录,可以作为插件安装在WordPress中。激活后,您可以进入插件的管理面板,并告诉它所有以“/ catalog”(或您选择的任何内容)开头的URL都将转到此产品目录应用程序。现在该应用程序将驻留在wp-content / plugins / mycatalog文件夹中。因此,/ catalog / product / 400将转到wp-content / plugins / mycatalog / app.php,然后将解析URL中的“product”和“400”。
我在路径wp-content / plugins / hijack中创建了一个插件文件夹,然后将这个文件插入了plugin.php。
<?php
/*
Plugin Name: Hijack
Plugin URI: http://example.com/contact
Description: Sample URL Hijacker Plugin
Author: John Doe
Version: 1.1
Author URI: http://example.com/contact
*/
add_filter('init','Hijack');
function Hijack() {
$URL = get_bloginfo('wpurl');
$PLUGIN = $_SERVER['SCRIPT_FILENAME'];
$PLUGIN = str_replace('/index.php','',$PLUGIN);
$PLUGIN = $PLUGIN . '/wp-content/plugins/hijack';
$sHijack = '/catalog';
$sURL = $_SERVER['REDIRECT_URL'];
if (strpos(' ' . $sURL,$sHijack)>0) {
$sYank = $URL;
$sYank = str_replace('http://','',$sYank);
$sYank = str_replace('https://','',$sYank);
$sYank = str_replace($_SERVER['SERVER_NAME'] . '/','',$sYank);
$sYank = $sYank . $sHijack;
$sTemp = str_replace($sYank,'',$sURL);
$sTemp = str_replace($sYank . '/','',$sTemp);
$sTemp = str_replace('//','/',$sTemp);
if ((substr($sTemp,-1,1) == '/') and ($sTemp != '/')) {
$sTemp = substr($sTemp, 0, -1);
}
define('VARS',$sTemp);
include($PLUGIN . '/index.php');
exit(0);
}
}
然后,从那里,我添加了wp-content / plugins / hijack / index.php作为测试用例并使用了以下代码:
<?php
echo VARS;
echo "<br />
";
print_r($_GET);
此时,当插件被激活时,我可以将/ catalog,/ catalog / products / 400等所有URL重定向到我的hijack插件文件夹中的index.php文件,然后index.php就像前面一样我的网络应用程序的控制器加载在WordPress内。 (我希望您熟悉PHP编程的MVC模型。)然后可以根据VARS中的内容重写前端控制器以调用页面控制器。
我不确定我到底知道你想要什么,但你总是可以用$_SERVER['REQUEST_URI']
检查PHP中文档的请求URL,并使用像parse_url
或explode("/", $_SERVER['REQUEST_URI'])
这样的东西来剖析它。
至于重定向页面,您可以使用带有HTTP重定向或META重定向的header()
调用。但这些都不是特定于WordPress的。 redirection
插件可能会满足您的需求:
http://wordpress.org/extend/plugins/redirection/
以上是关于插件如何在WordPress中劫持URL? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
更好的 SEO 从文章的 URL Slug 中删除“停止”词? [关闭]