在检查用户代理是否通过正确的域访问时,哪一项最有效.
如果他们使用某种Web代理访问域名(因为它往往会打破js),我们希望显示一个基于小js的"顶栏"样式警告.
我们考虑使用以下内容:
var r = /.*domain\.com$/;
if (r.test(location.hostname)) {
// showMessage ...
}
Run Code Online (Sandbox Code Playgroud)
这将照顾我们曾经使用的任何子域.
我们应该使用哪个主机名或主机名?
在Firefox 5和Chrome 12中:
console.log(location.host);
console.log(location.hostname);
Run Code Online (Sandbox Code Playgroud)
..两者显示相同.
是因为端口实际上不在地址栏中吗?
W3Schools说主机包含端口.
应该验证location.host/hostname还是我们可以在IE6 +中确定其他所有其他内容?
成像您正在尝试模式匹配"stackoverflow".
您需要以下内容:
this is stackoverflow and it rocks [MATCH]
stackoverflow is the best [MATCH]
i love stackoverflow [MATCH]
typostackoverflow rules [NO MATCH]
i love stackoverflowtypo [NO MATCH]
Run Code Online (Sandbox Code Playgroud)
我知道如果解析stackoverflow如果它在两个站点上都有空格使用:
/\s(stackoverflow)\s/
Run Code Online (Sandbox Code Playgroud)
如果它在字符串的开头或结尾处是相同的:
/^(stackoverflow)\s/
/\s(stackoverflow)$/
Run Code Online (Sandbox Code Playgroud)
但是如何指定"空格或字符串结尾"和"空格或字符串的开头"?
我们有一些非常基本的mod_rewrite规则:
RewriteRule ^something.swf$ http://www.newdomain.com/something.swf [R=302,L]
Run Code Online (Sandbox Code Playgroud)
mod_rewrite似乎完成了它的工作,如果用户正在访问:
something.swf?param=value,它被正确地重定向到 http://www.newdomain.com/something.swf?param=value
问题出在这种情况:
www.olddomain.com/something.swf?param=URL_ENCODED_VALUE
Run Code Online (Sandbox Code Playgroud)
最终发生的事情是mod_rewrite将它自己重新编码查询字符串参数
所以用户最终得到的是:
www.olddomain.com/something.swf?param=URL_ENCODED_VALUE
Run Code Online (Sandbox Code Playgroud)
重定向
www.newdomain.com/something.swf?param=URL_ENCODED_VALUE_OF_URL_ENCODED_VALUE
Run Code Online (Sandbox Code Playgroud)
所以我们最终得到一个双urlencoded值.boourns!
虽然我明白我们可以制定一个\?(.*)...... ?$1规则,但我认为必须有一种方法告诉mod_rewrite不要urlencode查询字符串参数...我们希望避免使用2条规则,因为有效路径是:
something.swf (no query string)
Run Code Online (Sandbox Code Playgroud)
和
something.swf?someparams...
Run Code Online (Sandbox Code Playgroud)
所以是的,理想情况下......告诉mod_rewrite:请不要查询字符串参数的urlencoding ...只需通过直接传递到新的URL R=302.
我们大多数人都知道以下语法:
function funcName($param='value'){
echo $param;
}
funcName();
Result: "value"
Run Code Online (Sandbox Code Playgroud)
我们想知道如何为'not last'参数传递默认值?我知道这个术语很遥远,但一个简单的例子是:
function funcName($param1='value1',$param2='value2'){
echo $param1."\n";
echo $param2."\n";
}
Run Code Online (Sandbox Code Playgroud)
我们如何完成以下任务:
funcName(---default value of param1---,'non default');
Result:
value1
not default
Run Code Online (Sandbox Code Playgroud)
希望这是有道理的,我们希望基本上假设不是最后的参数的默认值.
谢谢.
让我们说一个有以下代码:
<div style="width:100px;height:1000px">This-is-a-long-line-of-text-without-any-spaces-This-is-a-long-line-of-text-without-any-spaces-This-is-a-long-line-of-text-without-any-spaces-This-is-a-long-line-of-text-without-any-spaces</div>
Run Code Online (Sandbox Code Playgroud)
我道歉但堆栈溢出(根据预览)不会换行代码片段.
在大多数(?)情况下,以下内容将使包含长行文本的容器拉伸到其中包含的文本的整个宽度.
我们想根据父容器的css指定宽度(宽度:100px)强制执行换行符(甚至是中间单词).
这可能是通过我不知道的css标签吗?
IE6 +可比性,请加gecko/webkit/opera.
我们想检查当前是否通过PHP运行指定的进程.
我们想简单地提供一个PID并查看它当前是否正在执行.
PHP有一个内部函数可以提供给我们这些信息,还是我们必须从"ps"输出中解析它?
这在php中有效:
$x=$y='value';
Run Code Online (Sandbox Code Playgroud)
这将在esscence中将$ x和$ y设置为'value'.
这在javascript中有效吗?
var x=y='value';
Run Code Online (Sandbox Code Playgroud)
我已经在chrome控制台中对它进行了测试,它按预期工作,但只是想在开始使用之前仔细检查.
是否可以使用JavaScript更改CSS样式表?
我不是在谈论:
document.getElementById('id').style._____='.....';
Run Code Online (Sandbox Code Playgroud)
我AM谈论改变:
#id {
param: value;
}
Run Code Online (Sandbox Code Playgroud)
除了做一些脏东西(我们还没有尝试过btw),比如在头部创建一个新对象,innerHTML那里有一个样式标签,等等.尽管这样,即使它确实起作用,也会带来一些问题作为样式block已在别处定义,我不确定浏览器何时/是否会解析动态创建的样式块?
出于搜索引擎优化的目的,我们想要更改在nginx后面的后端机器由于某种原因而关闭时返回的HTTP状态代码.
我们想将此更改为"503 Service Unavailable".除了向Google/Bing提供一个Retry-After标头之外,还应该在X秒内重试该请求.
这可能通过nginx吗?
我不是在谈论自定义错误页面,而是在标题中返回的状态代码.
我们的nginx前端后面有几个后端.
是否有可能拦截这些后端发送的301/302重定向并让nginx处理它们?
我们独自在于:
error_page 302 = @target;
Run Code Online (Sandbox Code Playgroud)
但我怀疑301/302重定向可以像404等一样处理...我的意思是,error_page可能不适用于200等错误代码?
总结一下:
我们的后端偶尔发回301/302s.我们想让nginx拦截这些,并将它们重写到另一个位置块,在那里我们可以用它们做任何其他的事情.
可能?
谢谢!
redirect reverse-proxy nginx http-status-code-301 http-status-code-302
javascript ×3
css ×2
html ×2
nginx ×2
php ×2
alter ×1
apache ×1
default ×1
function ×1
host ×1
http ×1
location ×1
mod-rewrite ×1
parameters ×1
pid ×1
preg-match ×1
process ×1
proxy ×1
redirect ×1
regex ×1
stylesheet ×1
variables ×1
window ×1