在php中引用url

时间:2010-09-21 11:35:13

标签: php

我正在尝试设置我的404页面来检测引用网址。 我想在PHP中有这个想法吗? 非常感谢你

3 个答案:

答案 0 :(得分:4)

<击>

<击>
<?php
$referer = $_SERVER['HTTP_REFERER'];
?>

注意:不要过分依赖这些数据,因为很容易伪造。

在apache2.conf(或.htaccess)

<击> ErrorDocument 404 /your_error_dir/your_error_file.php

<强>更新

http://ex.am/c8N4j

您的mod_rewrite应该检测到给定的参数:c8N4j 您的PHP脚本应该搜索数据库中的给定参数,如果发现它应该将用户重定向到实际页面。

答案 1 :(得分:3)

的.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule>

现在,您的所有请求都将重定向到index.php 请求的uri细分受众群将以$_SERVER['REQUEST_URI']的形式提供。 所以,只需要在你的数据库中查找该字符串,并做任何你需要做的事情。


实施例: 我在localhost环境中设置了一个测试文件夹,添加了.htaccess并创建了一个新的index.php

<?php
$uri = $_SERVER['REQUEST_URI'];
$segments = explode('/', $uri);
var_dump($segments['2']);

将您的浏览器发送到:http://localhost/test/123/foo,它将打印

string '123' (length=3)

现在你的字符串在$ segments ['2']中。在数据库查询中使用它。 就这么简单。

答案 2 :(得分:2)

你的意思是?

$_SERVER['HTTP_REFERER']
  

页面的地址(如果有的话)   将用户代理引用到当前   页。这是由用户代理设置的。   并非所有用户代理都会设置此项,并且   一些提供修改的能力   HTTP_REFERER作为一项功能。简而言之,   它真的不可靠。它真的不可信任。

另请参阅Determining Referer in PHP