有没有办法用一个变量中的另一个字符串来屏蔽URL中的字符串? 我有这些变量
PathCompiler
我想在浏览器中显示的是:$keyword = 'stackoverflow';
$foo = $keyword;
$bar = 'main-category';
但此网址将请求以下内容:http://example.com/main-category/page=2
请不要告诉我htaccess可以实现,因为关键字是动态变化的,而且在客户端也是如此,并非所有用户都可以修改htaccess / nginx.conf
edit:上面的URL仅作为示例,我的意思是 如何使用$ bar变量调用$ keyword变量
我尝试
http://example.com/$keyword/page=2
这的确呼应了'main-category',但没有传递真正的$ foo变量
谢谢。
答案 0 :(得分:0)
我为您提供解决方案,但是基于htaccsess的方式。
您将在get参数上使用关键字。
执行以下步骤:
1)将此RewriteRule添加到.htaccsess文件
RewriteRule test /(.*)/ page = 2?$ test2.php?keyword = $ 1 [L]
2)在主文件夹中创建test2.php(您可以随意命名文件,通常开发人员使用index.php来处理所有此类请求)
并将这些代码放入页面
$keyword = htmlscpecialchars($_GET['keyword']);
echo "The keyword is "$keyword;
因此,您将获得关键字。不要忘记您的网址将是http://example.com/test/ {keyword} / page = 2。您可以善意地更改或删除“测试”部分。
最诚挚的问候。
答案 1 :(得分:0)
在什么情况下要应用另一个变量仍然完全不清楚。还是为什么。
无论如何,在任何人提到varvars之前,您可能需要的是一张简单的地图:
$map = array(
"main-category" => "stackoverflow",
'$keyword' => "bazbazbaz",
);
$bar = "main-category";
$foo = $map[$bar];
允许在应用程序上下文中“重写”关键字或变量样式的占位符。