根据URL创建变量

时间:2014-04-24 16:34:30

标签: javascript php jquery html ajax

假设我在www.hostname.com/example有一个网站。我想创建一个基于原始URL的任何扩展生成的页面。例如,我有一个名为setup.php的页面。如果有人要去www.hostname.com/example/xyz,它会加载setup.php,并使用xyz作为变量来自定义setup.php。这可能吗?我试过搜索谷歌,但没有找到任何结果。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

以网址http://www.noticeeverything.com/news/为例。你可以像这样抓住字符串“news”:

var url = window.location.href; 
var str = url.substring(32, 36); 
console.log(str);

或者,无需确定所需子字符串的索引:

var url = window.location.href; 
var str = url.replace('http://www.noticeeverything.com/news/', 'news'); 
console.log(str);

或者,如果您不知道具体的网址是什么,但希望它遵循相同的模式(即“http://www.something.com/something/”):

var pattern = /[a-z]+/; 
var url = window.location.href;
var newString = url.replace("http://www.", '').replace(pattern, '').replace('.com/', '').replace('/', '');
console.log(newString);

希望有所帮助。

答案 1 :(得分:1)

创建一个名为.htaccess的文件并将其放在主目录中。然后将此代码放入其中:

RewriteEngine on
RewriteBase /
RewriteRule ^(.*)$ setup.php?data=$1 [QSA,L]

现在无论您打开哪个网址,都会执行文件setup.php,您可以使用$_GET['data']变量获取所请求的数据。例如:

<?php
$data = $_GET['data'];
if($data === 'xyz') {
echo "<b>xyz</b> is requested!";
include "xyz.php";
}
else {
echo "error 404: page not found";
}
?>