【发布时间】:2010-09-21 21:11:30
【问题描述】:
我正在尝试设置我的 404 页面来检测引用 URL。 我想在PHP中对此有何想法? 非常感谢
【问题讨论】:
标签: php
我正在尝试设置我的 404 页面来检测引用 URL。 我想在PHP中对此有何想法? 非常感谢
【问题讨论】:
标签: php
.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'] 中。在您的数据库查询中使用它。 就这么简单。
【讨论】:
罢工>
<?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 脚本应该在您的数据库中搜索给定的参数,如果找到它应该将用户重定向到实际页面。
【讨论】:
你的意思是?
$_SERVER['HTTP_REFERER']
页面的地址(如果有) 将用户代理引用到当前 页。这是由用户代理设置的。 不是所有的用户代理都会设置这个,并且 有些提供修改的能力 HTTP_REFERER 作为一个特性。简而言之, 它不能真正被信任。它不能真正被信任。
【讨论】: