我正在一个使用IIS 7的URL重写功能的网站上进行从example.com到www.example.com的永久重定向,以及从类似域名重写到"主要"域名,例如来自www. examples.com到www.example.com.
这个重写规则 - 如下所示 - 已经有一段时间了.但是,我们最近添加了HTTPS支持,并注意到如果用户访问要重写到www.example.com的其中一个URL,则会删除HTTPS.例如,如果用户访问https://example.com,则会将其重定向到http://www.example.com,而我们希望将其发送到https://www.example.com.
这是感兴趣的重写规则(在Web.config中):
<rule name="Canonical Host Name" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^example\.com$" />
<add input="{HTTP_HOST}" pattern="^(www\.)?example\.net$" />
<add input="{HTTP_HOST}" pattern="^(www\.)?example\.info$" />
<add input="{HTTP_HOST}" pattern="^(www\.)?examples\.com$" />
</conditions>
<action type="Redirect" url="http://www.example.com/{R:1}" redirectType="Permanent" />
</rule>
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,动作元素的URL直接属性点到http://,所以我知道为什么https://example.com会被重定向到http://www.example.com.我的问题是,我该如何解决这个问题?我试图(天真地)从url属性中删除http://部分,但这不起作用.
尝试使用PHP和TCPDF创建正确的PDF文档.
你能帮助我吗,我怎样才能在TCPDF中使用writeHTML函数来创建和居中表?
尝试过:
$html = '
<div style="margin-left: auto; margin-right: auto; width: 50%">
<table border="1" width="200" align="center"><tr><td><b>Invoice number: '.$this->xInvoiceNumber.'</b></td></tr></table>
<br />
<table border="1" width="200" align="center"><tr><td>'.$this->xClient.'</td></tr></table>
<br />
</div>
Run Code Online (Sandbox Code Playgroud)
......但没有运气.
我在这里一无所知......
1: private static class ForeignKeyConstraint implements Comparable<ForeignKeyConstraint> {
2: String tableName;
3: String fkFieldName;
4:
5: public int compareTo(ForeignKeyConstraint o) {
6: if (this.tableName.compareTo(o.tableName) == 0) {
7: return this.fkFieldName.compareTo(o.fkFieldName);
8: }
9: return this.tableName.compareTo(o.tableName);
10: }
11: }
Run Code Online (Sandbox Code Playgroud)
在第6行,我从FindBugs得到: Bug: net.blabla.SqlFixer$ForeignKeyConstraint defines compareTo(SqlFixer$ForeignKeyConstraint) and uses Object.equals()
我不知道如何纠正这个问题.
我最近参与了一个需要与PHP/SQL Server集成的项目.我正在寻找最快和最简单的函数来防止SQL注入SQL Server,因为我更喜欢MySQL,并且不期待更多的SQL Server相关项目.
这个功能足够吗?
$someVal = mssql_escape($_POST['someVal']);
$query = "INSERT INTO tblName SET field = $someVal";
mssql_execute($query);
function mssql_escape($str) {
return str_replace("'", "''", $str);
}
Run Code Online (Sandbox Code Playgroud)
如果没有,我应该采取哪些额外步骤?
编辑:我在Linux服务器上运行 - sqlsrv_query() only works if your hosting environment is windows
jQuery UI自动完成:
如何将术语发布到搜索脚本而不是GET?
我正在尝试为cd !!:1写一个别名,它取上一个命令的第二个字,并更改为该名称的目录.例如,如果我输入
rails new_project
cd !!:1
Run Code Online (Sandbox Code Playgroud)
第二行将进入"new_project"目录.
由于!!:1是尴尬的类型(尽管它很短,它需要三个转移键,就在键盘的两侧,然后这是输入的密钥的不移位版本两次移动),我想只需要输入的东西喜欢
cd-
Run Code Online (Sandbox Code Playgroud)
但是由于!!:1是在命令行上进行评估的,所以我(显然)不能这样做
alias cd-=!!:1
Run Code Online (Sandbox Code Playgroud)
或者我将保存包含硬编码的"new_project"的别名.所以我试过了
alias cd-='!!:1'
Run Code Online (Sandbox Code Playgroud)
这个问题是!!:1永远不会被评估,我得到一条消息,没有名为!!:1的目录.如何在我发布别名命令的时候制作别名来评估历史替换,而不是在我定义别名时,而不是从不?
(我在bash和zsh中都试过这个,并在两者中得到相同的结果.)
我正在研究一种仅适用于引用类型的扩展方法。然而,我认为目前正在对值进行装箱和拆箱。我怎样才能避免这种情况?
namespace System
{
public static class SystemExtensions
{
public static TResult GetOrDefaultIfNull<T, TResult>(this T obj, Func<T, TResult> getValue, TResult defaultValue)
{
if (obj == null)
return defaultValue;
return getValue(obj);
}
}
}
Run Code Online (Sandbox Code Playgroud)
用法示例:
public class Foo
{
public int Bar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在某种方法中:
Foo aFooObject = new Foo { Bar = 1 };
Foo nullReference = null;
Console.WriteLine(aFooObject.GetOrDefaultIfNull((o) => o.Bar, 0)); // results: 1
Console.WriteLine(nullReference.GetOrDefaultIfNull((o) => o.Bar, 0)); // results: 0
Run Code Online (Sandbox Code Playgroud) 我有VS2008解决方案包含一个项目,该项目生成一个C#可执行文件,该项目引用了一个生成包含C++/CLI和非托管C++的DLL的项目.
我想将这些合并到一个可执行文件中,因为C++ DLL包含我想要嵌入主可执行文件的安全代码.
我不能使用ILMerge,因为dll包含托管代码和非托管代码.建议的解决方案似乎是使用link.exe将C#程序集与C++目标文件链接起来.这就是我想要做的.
我手动编辑了c#可执行文件的项目文件以生成netmodule.我在可执行项目中添加了一个构建后步骤,以运行link.exe将c#netmodule和已编译的C++目标文件链接在一起,然后运行mt.exe来合并两个项目创建的程序集清单.这运行成功,但是exe仍然包含对C++项目的正常构建过程生成的dll中定义的c ++类型的引用和使用.
然后我在C++ dll的项目设置中指定了/ NOASSEMBLY,因此它还生成了一个netmodule.在C#项目中,我删除了对C++项目的引用,但在解决方案中添加了项目依赖性.我手动编辑了C#项目文件,包括类似于:
<ItemGroup>
<AddModules Include="..\Debug\librarycode.netmodule" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
即引用现在由C++项目生成的C++ netmodule.
但是,现在我的post build事件中的链接器步骤失败了:
error LNK2027: unresolved module reference 'librarycode.netmodule'
fatal error LNK1311: 1 unresolved module references:
Run Code Online (Sandbox Code Playgroud)
这完全可以理解,因为我没有链接到librarycode netmodule; 我链接在用于生成netmodule的C++目标文件中.
简而言之,如何将ac#executable和C++目标文件合并到一个程序集中?我错过了什么?
到目前为止我的引用源(来自MSDN上的link.exe命令链接引用等)是以下两篇文章:
非常感谢你提前.
我在Steve Teixeira的博客中完全遵循了这个例子,并证实它有效.使用反射器,我可以看到生成的可执行文件包含两个netmodule.c#netmodule包含对另一个netmodule的引用但没有名称?!如果将程序集移动到新目录,则第二个netmodule变为未引用(显然),但可执行文件仍然运行,因为c#netmodule中存在具有正确定义的类型.
请注意,原始c#netmodule确实包含对c ++ netmodule的命名引用,因此它必须是删除名称的链接器步骤.
试图在我的示例项目中遵循此示例,我已将/ ASSEMBLYMODULE参数添加到我的后期构建链接器步骤中.链接器现在失败了
LNK2022: metadata operation failed (80040427) : Public type 'MixedLanguageLibrary.Class1' is defined in multiple places in this assembly: 'MixedLanguageDemo.exe' and 'mixedlanguagelibrary.netmodule'
LINK : fatal error LNK1255: link failed because of metadata errors
Run Code Online (Sandbox Code Playgroud)
我猜这是链接器魔术删除我缺少的模块引用名称. …
我正在使用3列4行的MigLayout表单,如下所示:
"wrap 3",
"[15%] 15px [45%] 15px [40%]",
"20 [] 15 [] 15 [grow,fill] 15 []"
Run Code Online (Sandbox Code Playgroud)
现在我的目标是使其看起来像这样:
.------------------------------------.
| 15% | 45% | 40% |
|------------------------------------|
| | | |
|------------------------------------|
| | | |
|------------------------------------|
| button,button |
`------------------------------------´
Run Code Online (Sandbox Code Playgroud)
我希望最后一行的按钮居中,因此我假设首先需要将第4行的3列跨成一列,"span 3, center"并在按钮上加上组件约束。
仅使用一个按钮就可以很好地工作,但是在弄清楚如何添加第二个按钮的同时将两个按钮同时保持在同一行的中心位置时,我遇到了问题。如果我在第二个按钮上添加相同的约束,则它在下一行的第一个按钮的下方居中显示。