好的,让我一步一步地向你解释,点对于这方面的发展来说是全新的。
我的cproject目录中的php文件: allproducts.php watch.php
在allproducts.php中,im显示数据库中所有可用的产品。每个产品都有自己的网址。在我的watch.php中,im根据参数显示某些数据来自allproducts.php页面。
在我的allproducts.php页面中,我有一个网址:
http://localhost/cproject/watch?v=
url看起来如下所示:
localhost/cproject/watch?v=J46TKlqSw3Gt4sk
此刻,我为make watch.php写了一个重写程序,以“观察”
现在我想要的是摆脱这个"?“将"/“和"v=”标记为“//”,因此我希望我的规则看起来像这个localhost/cproject/watch/J46TKlqSw3Gt4sk
我希望现在你能明白我到底想做什么?如果我突然向您解释我的.htaccess文件中包含了这个watch.php的内容,那么我有这行代码
RewriteRule ^观看watch.php NC,L
发布于 2016-04-26 10:40:38
您必须使用.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] 如果需要从url获取参数,请使用:
javascript
var str = "http://localhost/cproject/watch?v=J46TKlqSw3Gt4sk";
var param = str.split("=")[1];
alert(param);结果
J46TKlqSw3Gt4sk
和新的url
var str = "http://localhost/cproject/J46TKlqSw3Gt4sk";
var param = str.split("/");
alert(param[param.length - 1]);结果
J46TKlqSw3Gt4sk
发布于 2016-04-26 10:54:42
对于.htaccess文件,您可以使用这个RewriteRule,它将使用/将url转发到带有/watch?v=的url。
RewriteRule ^cproject/(.*) cproject/watch?v=$1 [NC]例如:
启动URL http://localhost/cproject/eeeeeeeaf
端URL http://localhost/cproject/watch?v=eeeeeeeaf
但是,我想要的是像上面提到的那样获得一个url,并在另一个页面中获取参数。
通过使用/watch数组中的REQUEST_URI元素,您可以使用$_SERVER[]文件中的PHP来完成这一任务。
对于PHP代码,您可以这样做:
<?php
$request = $_SERVER['REQUEST_URI'];
$exploded = explode("/", $request);
$id = $exploded[4];
echo $id;
?>关于你对问题的补充,这是很容易做到的,正如我上面所说的。与我所写的不同,你只需使用:
RewriteRule ^watch/(.*) watch.php?v=$1 [NC,L]您可以在当前规则(最好是在后面)的同时添加此规则,并且它应该根据您的需要发挥作用。
现在我想要的是摆脱这个"?“将"/“和"v=”标记为“//”,因此我希望我的规则看起来像这个localhost/cproject/watch/J46TKlqSw3Gt4sk
我提供的URL RewriteRule将完成以下操作:)您是否实际测试了所提供的重写?
https://stackoverflow.com/questions/36862333
复制相似问题