我的网站页面根据以下规则显示不同的内容:
如果没有给定的cookie,那么
-if referrer is internal then
--show page 1
--else
--show page 2
else
-show page 1
问题是,服务器本身偶尔会访问该特定页面(使用php与PDF API串联)。具体来说,请求该URL的代码如下所示(并且必须如下所示):
$pdf = $client->convertURI('URL HERE')
当访问该页面时,第2页始终显示,因为推荐人不在那里,也不是cookie。
但是,我需要第1页始终显示...当通过服务器请求该特定URL时,是否有标记或始终显示第1页的方法?
答案 0 :(得分:0)
如果我理解你,你只想在你正在测试的某种条件下强迫用户访问页面(第1页)。如果这是正确的,那么这应该足够了:
/**
access logic left to your discretion
***/
if ($access != 'granted')
{
header('Location: http://www.example.com/page1');
exit(); // for clarity
}
/******* logic continued for "page 2" or whatever *****/
答案 1 :(得分:0)
我最终找到了一个解决方案,部分原因是“ChronoFish”的评论“你可以改变你的逻辑”......虽然不是直接的。
我提出的解决方案非常简单,而且我很生气我以前没想过。
好的,网站的工作原理如下:
用户访问网址1 - 在网址1上,如果用户没有给定的Cookie并且他们的引荐来源不是内部的或是空白的,则会显示网址2.如果到达网址1的用户有给定的Cookie或他们的referrer是内部的,它们显示为URL 1.这都是我原来的问题。
我遇到的问题是,PDF API也请求URL 1,而像这样的服务器端调用没有cookie或引用来...所以PDF API将URL 2中的内容返回给它而不是来自URL 1的内容,这是所需要的。
如何调用PDF API,正在使用它:
$pdf = $client->convertURI('URL 1 HERE')
好吧,我所做的只是在URL中添加一个变量,所以这里的URL 1就是这样的,URL现在是这样的:
http://somesite.com/URL-1/?server=yes
然后,在URL 1上,我添加了一些额外的逻辑:
$server = $_GET["server"];
if ($server == 'yes')
then show URL 1
然后我的原始代码的其余部分在另外的声明中。