根据URL创建变量


Create variable based on URL

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

创建一个名为.htaccess的文件,并将其放置在主目录中。然后把这个代码放进去:

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

现在,无论您打开哪个url,文件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";
}
?>

以url http://www.noticeeverything.com/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);

或者,如果你不知道url具体是什么,但希望它遵循相同的模式(即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);

希望能有所帮助。