安全的url参数

时间:2016-04-26 10:31:15

标签: php regex

好的,让我一步一步向您解释,Point对于这一发展来说是新的。

我的cproject目录中的php文件: allproducts.php watch.php

在allproducts.php中显示数据库中可用的所有产品。每个产品都有自己的网址。在我的watch.php中,根据参数显示某些数据来自allproducts.php页面。

在我的allproducts.php页面中我有这个网址:

http://localhost/cproject/watch?v=

url看起来像这样:

本地主机/的CProject /观看?V = J46TKlqSw3Gt4sk

此刻我为make watch.php编写了一个重写文件,以及#34;观看"

现在我想要的是摆脱这个"?"标记为" /"和" v ="进入" /" 所以我希望我的rul看起来像这样 本地主机/的CProject /手表/ J46TKlqSw3Gt4sk

我希望你现在明白我想要做什么呢? 如果我突然向你解释我在这个watch.php的.htaccess文件中的内容 我有这行代码

  

RewriteRule ^ watch watch.php [NC,L]

2 个答案:

答案 0 :(得分:0)

  

你必须使用.htaccess来做这个网址。

.htaccess文件代码

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

对于小于5.2.6的PHP版本,请尝试:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L] 

如果您需要从网址获取参数,请使用:

<强>的javascript

var str = "http://localhost/cproject/watch?v=J46TKlqSw3Gt4sk";
var param = str.split("=")[1];
alert(param);

<强>结果

  

J46TKlqSw3Gt4sk

使用新网址

var str = "http://localhost/cproject/J46TKlqSw3Gt4sk";
var param = str.split("/");
alert(param[param.length - 1]);

<强>结果

  

J46TKlqSw3Gt4sk

答案 1 :(得分:0)

对于.htaccess文件,您可以使用此RewriteRule,它会将只有/的网址转发到包含/watch?v=的网址。

RewriteRule ^cproject/(.*) cproject/watch?v=$1 [NC]

例如:

启动网址http://localhost/cproject/eeeeeeeaf
结束网址http://localhost/cproject/watch?v=eeeeeeeaf

  

但我想要的是获得一个像我上面提到的网址并在不同页面中获取参数

您可以使用/watch文件中的REQUEST_URI元素,使用PHP中的PHP执行此操作。

对于您可以执行的PHP代码:

$_SERVER[]

关于你对问题的补充,我很容易就像上面提到的那样。而不是我放的东西,你只需使用:

<?php
$request  = $_SERVER['REQUEST_URI'];
$exploded = explode("/", $request);
$id       = $exploded[4];
echo $id;
?>

您可以将此规则与当前规则一起添加(最好在之后),它应该可以根据您的需要运行。

  

现在我想要的是摆脱这个“?”标记为“/”和“v =”进入“/”所以我希望我的rul看起来像localhost / cproject / watch / J46TKlqSw3Gt4sk

我提供的URL RewriteRule会这样做:) 你真的测试了你提供的重写吗?