Articles of 301redirect

nginx从.htmredirect到没有的url

您好新的网站启动。 前网站有这样的url: http://example.com/something.htm 新网站没有,看起来像这样: http://example.com/something 我怎么能告诉nginx做这个redirectpermanetly(301)。 我已经尝试rewrite ^(.*)$ $1.htm permanent; 没有成功。 location ~*\.(htm)${ rewrite ^(.*)$ $1.htm permanent; }

nginx 301redirect不适用于www。 子域

我试图用nginx创build一个301从一个域重新指向另一个域。 以下是我目前正在做的事情,并按照我的要求工作: server { listen 80; server_name domain.net; return 301 $scheme://www.domain.net$request_uri; } server { listen 80; server_name www.domain.net; … } 我想修改第一个服务器块来包含一个.co域名,也可以redirect到www.domain.net: server { listen 80; server_name domain.net domain.co www.domain.co; return 301 $scheme://www.domain.net$request_uri; } 但是,当我inputwww.domain.co,网站加载正常,但地址栏仍然显示www.domain.co而不是www.domain.net。 同样,做一个curl – 我www.domain.co显示200而不是301.省略www。 只有打字domain.co送我到www.domain.net。 curl -I domain.co也返回一个正确的301。 任何想法为什么这不工作时,我添加www。 我一直在尝试一段时间,search/反复试验已经没有结果了。

使用子path内部代理的子域名,但redirect外部客户端,如果他们要求该子path?

我有一个VirtualHost,我想有几个子域名。 (为了清楚起见,假设我的域名是example.com ,我只是想通过让foo.example.com工作,并从那里开始构build。) 我发现一个子域与我的框架非侵入性地工作最简单的方法是通过mod_rewrite代理到一个子path。 因此,path将在客户端的URL栏中显示为http://foo.example.com/(无论什么),而他们实际上将被提供http://foo.example.com/foo/(whatever) 。 我设法在我的VirtualHostconfiguration文件中这样做: ServerAlias *.example.com RewriteEngine on RewriteCond %{HTTP_HOST} ^foo\.example\.com [NC] # <— RewriteCond %{REQUEST_URI} !^/foo/.*$ [NC] # AND is implicit with above RewriteRule ^/(.*)$ /foo/$1 [PT] (注意:很难find这个特定的工作组合,特别是在[RewriteRule]中,[PT]似乎是必须的,我无法用我在别处看到的例子[L] 。它不会显示任何东西或进入循环。也有一些浏览器似乎caching响应页面的糟糕的循环,一旦他们得到一个页面重新加载后修复它不会显示它正在工作!任何情况下 – 如果这部分可以做得更好。) 现在我想让什么http://foo.example.com/foo/(无论)提供取决于谁问。 如果请求来自外部,我希望客户端被Apache永久redirect,以便他们在浏览器中获得URL http://foo.example.com/(无论什么) 。 如果它来自mod_rewrite的内部,我想要的是由Web框架处理…这是不知道子域。 是这样的可能吗?

为什么Nginx不会为以问号开头的URL返回404错误?

我试图得到一个重写规则工作,我发现,如果URL以问号开头,Nginx无法按预期返回404错误。 相反,根指令中定义的index.html适用于以“?”开头的所有URL。 (例如, example.com/?page-does-not-exist page-does-not- example.com/?page-does-not-exist适用于主页,但不应该) 这使得从example.com/?format=feed&amp;type=rss – > example.com/rss.xml无法获得redirect。 这是从Joomla迁移到Jekyll的博客。 简而言之,访问example.com/123会返回404 ,而访问example.com/?123则不会 。 后者通过URL example.com?/ 123返回该网站的主页。 (没有文件或文件夹'123',所以它的请求应该总是失败。) 除了预期的404redirect不会出现在以问号开头的url之外,网站的所有function都能正常工作,包括HTTPSredirect。 我该如何解决? 这是我的configuration: server { server_name example.com; root /var/www/example.com; index index.html; listen 443; ssl on; … rewrite "/?format=feed&amp;type=rss" https://example.com/rss.xml permanent; location ~* \.(?:ico|css|js|gif|jpeg|jpg|png|txt|svg|eot|woff|ttf)$ { expires max; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; add_header Access-Control-Allow-Origin *; […]

IIS 6 – 设置301非www的redirect到www的SEO

市场营销部门的人员在我们的公共网站上运行了一个search引擎优化工具,发现我们网站的大约一半链接到www.mycompany.com,一半链接到mycompany.com。 这两个都转到相同的IIS 6.0 Web服务器。 但是,这显然是不利于search引擎优化。 我一直在阅读301redirect应该解决这个问题。 但是,当我遵循非常简单的方向时,我陷入了似乎是一个无限循环。 方向:IIS,在“主目录”选项卡的网站属性下 – 使用“redirect到一个URL”,并把正确的地址在… http://www.mycompany.com 。 当我在应用这个改变后进入网站时,我只是在浏览器中获得了一个快速加载栏,这是有道理的。 这个redirect不告诉IIS发送stream量到这个新的URL,这本身是有效的吗? 这里是一个截图示例教程:highposition.net/301-redirect-tutorial-iis/ 任何帮助将非常感激!

Nginx:将http和https根redirect到子目录

我试图redirect在nginx中的http和https的根域到相同的子目录(https): 所以,例如 http://example.com -> https://example.com/subdirectory https://example.com -> https://example.com/subdirectory 我觉得这很简单,我正努力做到这一点。 我试过使用重写的变体,并返回301,但总是以redirect循环结束。 我当前的configuration(导致循环): server { listen 80; server_name example.com; return 301 https://$server_name/subdirectory; } server { listen 443 ssl spdy; server_name example.com; return 301 https://$server_name/subdirectory; } 所以基本上,我试图redirect到https域根目录上相同的子目录,无论是通过http或https请求根域。

需要一些帮助优化Nginx中的301redirect

我刚刚为一个网站创build了一个新的结构,我需要一些帮助redirect到新的地方。 这个代码在这里,但我想这可以优化很多。 location = /nl { rewrite ^ $scheme://$server_name permanent; } location = /nl/ { rewrite ^ $scheme://$server_name permanent; } location = /en { rewrite ^ $scheme://$server_name permanent; } location = /en/ { rewrite ^ $scheme://$server_name permanent; } location = /nl/contact { rewrite ^ $scheme://$server_name/contact/ permanent; } location = /en/contact { rewrite ^ $scheme://$server_name/contact/ permanent; […]

nginx返回301 /redirect

在所有'在nginxredirect'的问题中,我找不到如何使用regexpsredirect(使用返回301和更好的没有ifs)。 我有一个链接到我的网站,我想删除参数结束: domain.com/article/some-sluggish-link/?report=1 #number at end 正则expression式来find这个: \?report=\d*$ 为此,我想301redirect到: domain.com/article/some-sluggish-link/ 我nginx.conf我有3个redirect: server { listen 80; server_name subdomain.example.com.; #just one subdomain } server { listen 80; server_name *.example.com; return 301 http://example.com$request_uri; } server { listen 80; server_name example.com; } 它的工作; 它将所有www。,ww。,aaa。,301以及除1个以外的每个子域redirect到main domain.com 我会很感激任何帮助干杯! 编辑25/03/2015 我的conf文件中已经有“location /”了: location / { uwsgi_pass unix://opt/run/ps2.sock; include uwsgi_params; } redirect到一些Django的应用程序。 应用“if”条款后,它给我无限循环! […]

使用www apache2redirect到https://

我将所有http://请求redirect到https://使用像这样的apache2主机.conf文件。 <VirtualHost *:80> ServerName example.com ServerAlias www.example.com Redirect / https://www.example.com/ </VirtualHost> <VirtualHost *:443> ServerName www.example.com #more details here </VirtualHost> 这工作正常,并将所有请求redirect到https:// 现在我想将我的非www请求redirect到www(所以https://example.com到https://www.example.com )。 我试图在上面的443块之前,之后再加上这些。 但没有运气:( <VirtualHost *:443> ServerName example.com Redirect / https://www.example.com/ </VirtualHost> 任何想法如何我可以启用这个没有.htaccess。 请帮忙..

301仅redirect到选定的深层页面的其他域?

希望能对此有所帮助 我正在尝试301只select从一个域到另一个域的深层页面的深层页面。 我不希望301整个网站。 我的问题是a)这是可能的,b)什么是完整的htaccess代码和语法 即old.co.uk/oldurl到new.com/newurl 我可以问问这是否会自行工作? redirect301 /OldPage.html http://xyzname.com/NewPage.html 非常感谢所有