所以我有一个使用折扣 asp.net 帐户运行的网站,我将一个 asp.net mvc 应用程序放在一个子目录中。如果我的 url 是“www.website.com”并且我的应用程序在目录“sample”中,那么“www.website.com/sample”将执行 mvc 应用程序。
我的问题是我希望在您访问“www.website.com”时显示该应用程序,而不仅仅是“www.website.com/sample”。我可以访问 IIS 管理器,而且我确信有很多方法可以做到这一点。
做到这一点的最佳方法是什么?
我希望 Apache 通过网络发送 gzip 压缩的静态文件,但也希望 Apache 不总是一遍又一遍地对它们进行 gzip。所以我想如果 .gz 文件存在的话,它是否不可能交付。这个设置:
文件结构:
static/
|
|--- style.css
|
\--- style.css.gz
Run Code Online (Sandbox Code Playgroud)
以及 .htaccess 中的以下内容:
mod_rewrite 规则:
RewriteCond %{REQUEST_FILENAME}.gz -s
RewriteRule ^(.+) $1.gz [L]
Run Code Online (Sandbox Code Playgroud)
而这个设置:
AddEncoding x-gzip .gz
Run Code Online (Sandbox Code Playgroud)
实际上,只要发送 .gz 文件而不是 .css 文件,如果请求转到/static/style.css. 问题只是,该文件作为“application/x-gzip”而不是“text/css”交付。使用 mod_rewrite 的 T 标志不会改变这一点。也没有明确的
AddType text/css .css
Run Code Online (Sandbox Code Playgroud)
有没有人有想法,我如何才能实现所需的行为?或者出于某种我不认为的原因是不必要的?
编辑:还有一个额外的困难:将原始文件发送给没有 gzip 支持的客户端。有谁知道这是如何工作的?
我的公司希望将他们的“信息”网站从 HTTP 重写为 HTTPS。从技术上讲,这对我来说没什么大不了的。但我怀疑这是否是最先进的,因为他们想要这个的唯一原因是加密联系人和注册表单。(我可以为带有表单的站点启用 HTTPS,但是,他们不喜欢这种方法。)
拥有仅 HTTPS 的公司网站有哪些缺点和不足?您有什么经验和建议?
Web 应用程序在另一个 URL 上运行并被加密。
问候
我已将我的VirtualHost example.com配置为将所有请求代理到 Tomcat 服务器
ProxyPass / http://localhost:8088/app
ProxyPassReverse / http://localhost:8088/app
Run Code Online (Sandbox Code Playgroud)
这适用于example.com/page 之类的URL ,但对于example.com和example.com/我得到了这个重定向响应,这显然不会导致任何结果。
HTTP/1.1 302 Moved Temporarily
Date: Wed, 06 Jul 2011 21:13:37 GMT
Server: Apache-Coyote/1.1 <-- the redirect comes from tomcat
Location: http://example.com/app/ <-- nonsense
...
Run Code Online (Sandbox Code Playgroud)
我能做些什么来修复它?最好在 Apache 配置中。
我正在使用 Apache 2 和 Tomcat 7
我们有一个客户的网站在 Apache 上运行。最近,该站点的负载不断增加,作为止损,我们希望将站点上的所有静态内容转移到无 cookie 的域中,例如http://static.thedomain.com.
应用程序不是很好理解。因此,为了让开发人员有时间修改代码以将他们的链接指向静态内容服务器 ( http://static.thedomain.com),我考虑通过 nginx 代理站点并重写传出响应,以便将指向/images/...的链接重写为http://static.thedomain.com/images/....
例如,在从 Apache 到 nginx 的响应中,有一个标题 + HTML 的 blob。在从 Apache 返回的 HTML 中,我们有如下<img>标签:
<img src="/images/someimage.png" />
我想将其转换为:
<img src="http://static.thedomain.com/images/someimage.png" />
这样浏览器在接收到 HTML 页面后直接从静态内容服务器请求图像。
nginx(或HAProxy)可以做到这一点吗?
我粗略地浏览了文档,但除了重写入站 url 之外,没有什么让我感到惊讶。
我想要根网址
http://www.example.com
Run Code Online (Sandbox Code Playgroud)
重定向到
http://www.example.com/something/else
Run Code Online (Sandbox Code Playgroud)
这是因为一些奇怪的 WP 插件总是在基本 url 上设置一个 cookie,这不允许我缓存它。
我试过这个指令:
location / {
rewrite ^ /something/else break;
}
Run Code Online (Sandbox Code Playgroud)
但是 1) 没有重定向和 2) 页面开始向我的服务器发送 1,000 多个请求。有了这个:
location / {
rewrite ^ http://www.example.com/something/else break;
}
Run Code Online (Sandbox Code Playgroud)
Chrome 报告重定向循环。
要使用的正确正则表达式是什么?
也许是一个愚蠢的问题,但我似乎无法为此找到好的文档或示例......
当您使用位置块来过滤传入的请求时,您是从匹配的位置还是从请求的开头进行重写?
一个例子:
location ^~ /category/ {
rewrite ^/category/paid-search-news/?$ /tag/paid-search permanent; # this,
rewrite ^paid-search-news/?$ /tag/paid-search permanent; # this,
rewrite paid-search-news/?$ /tag/paid-search permanent; # or this?
}
Run Code Online (Sandbox Code Playgroud) 如何使我的规则与 cookie 的确切值匹配?我试过了:
RewriteCond %{HTTP_COOKIE} ^its=me$ [NC]
RewriteCond %{HTTP_COOKIE} its=^me$ [NC]
RewriteCond %{HTTP_COOKIE} its="me" [NC]
RewriteCond %{HTTP_COOKIE} its=me [NC]
Run Code Online (Sandbox Code Playgroud)
最后一个几乎有效,但是当额外的文本位于值的末尾时匹配,例如“me2”。仅当itscookie 的确切值为 时me,条件才应为真,之前或之后没有更多内容。
这些值应不匹配:
我想将站点始终重定向到 www.site.com。但是,我不确定如何让 WWW 始终显示在前面应该说有人在没有 www 的域中键入。
编辑:
server {
listen 80;
server_name site.com;
rewrite ^(.*) https://www.site.com$1 permanent;
}
server {
listen 80;
server_name www.site.com;
#rewrite ^(.*) https://www.site.com$1 permanent;
root /home/site/public_html;
listen 443 ssl;
Run Code Online (Sandbox Code Playgroud)
如果我输入 site.com,它会变成https://www.site.com= SUCCESS
如果我输入 site.com/index.php,它会变成http://www.site.com= NO SSL
想法?
rewrite ×10
nginx ×5
apache-2.2 ×3
asp.net-mvc ×1
cache ×1
gzip ×1
haproxy ×1
https ×1
iis ×1
iis-7 ×1
linux ×1
mod-rewrite ×1
redirect ×1
regex ×1
rewritecond ×1
tomcat ×1
url ×1
website ×1