你能以某种方式使用 base-tag 来传递参数吗?
Can you somehow use the base-tag to pass parameters?
我为大型框架编写了一些自定义调试代码,通过将 ?debug
添加到任何 url 我得到了一些自定义服务器数据。每当我单击 link 时,?debug
就会消失,当然我能以某种方式将它保留在那里吗?我的想法是使用基本标签:
If(isset($_POST['debug']{
<base href="/images/">
}
但是好像不支持参数。有类似的吗?
我认为您有 2 个选择 - "easiest" 是在服务器端添加一个会话变量,显示返回的所有页面都应处于调试模式。这带来了它自己的副作用,依赖会话就是其中之一。
更好的选择是将调试查询字符串添加到页面上的所有链接。这可以在呈现页面时在服务器端完成,但最好的方法可能是使用 jQuery 之类的东西自动将其添加到所有链接(如此处所述:Jquery : Append querystring to all links)
假设您使用的是 Apache,您可以只使用 mod_rewrite:
RewriteEngine on
# Test whether the current query string contains 'debug'
RewriteCond %{QUERY_STRING} !debug
# Internally append ('query string append') the extra parameter
RewriteRule (.*) ?debug [QSA]
要将此行为仅限于您的计算机,请在两者之间添加一个额外条件:
# Only trigger the rule if the remote IP address exactly matches the string
RewriteCond %{REMOTE_ADDR} =192.168.1.1
并将IP换成自己的。
我为大型框架编写了一些自定义调试代码,通过将 ?debug
添加到任何 url 我得到了一些自定义服务器数据。每当我单击 link 时,?debug
就会消失,当然我能以某种方式将它保留在那里吗?我的想法是使用基本标签:
If(isset($_POST['debug']{
<base href="/images/">
}
但是好像不支持参数。有类似的吗?
我认为您有 2 个选择 - "easiest" 是在服务器端添加一个会话变量,显示返回的所有页面都应处于调试模式。这带来了它自己的副作用,依赖会话就是其中之一。
更好的选择是将调试查询字符串添加到页面上的所有链接。这可以在呈现页面时在服务器端完成,但最好的方法可能是使用 jQuery 之类的东西自动将其添加到所有链接(如此处所述:Jquery : Append querystring to all links)
假设您使用的是 Apache,您可以只使用 mod_rewrite:
RewriteEngine on
# Test whether the current query string contains 'debug'
RewriteCond %{QUERY_STRING} !debug
# Internally append ('query string append') the extra parameter
RewriteRule (.*) ?debug [QSA]
要将此行为仅限于您的计算机,请在两者之间添加一个额外条件:
# Only trigger the rule if the remote IP address exactly matches the string
RewriteCond %{REMOTE_ADDR} =192.168.1.1
并将IP换成自己的。