Articles of 301 redirect

奇怪的301redirect行为

301正在redirect,但它将旧url附加到新url的末尾,如下所示: http://www.example.co.uk/new-dir/new-page/?/old-dir/old-page/ 这是我的.htaccess RewriteEngine On RewriteCond %{HTTP_HOST} ^example\.co.uk [NC] RewriteRule ^(.*)$ http://www.example.co.uk/$1 [R=301,L] Redirect 301 /old-dir/old-page/ http://www.example.co.uk/new-dir/new-page/ RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?/$1 [L]

Apache – 如何忽略301redirect中的path和参数

假设我希望所有对example.com的请求都redirect到abc.com。 如何将所有内容redirect到abc.com的根目录并且不包含example.com中包含的任何path或参数? 例如 example.com/index.py?var=1 should go to abc.com 我在我的.htaccess中试过 RedirectPermanent / http://www.abc.com 但它是这样做的: example.com/index.py?var=1 goes to abc.com/index.py?var=1

如何让Apache 301redirect使用光油?

我试图添加一些从旧域redirect到新的域名,我已经在我的虚拟主机文件中使用简单的301redirect,如: <VirtualHost *:8080> ServerName olddomain.com ServerAlias www.olddomain.com Redirect 301 / http://www.newdomain.com/ </VirtualHost> 然而,这是不工作在我的虚拟主机文件,我认为是因为在Apache前面运行Varnish服务器,但不知道如何解决它。 主站点在同一个虚拟主机文件中使用相同的端口,例如: <VirtualHost *:8080> ServerName www.newdomain.com … </VirtualHost> 我错过了什么? 我已经尝试使用清漆configuration文件来添加redirect在那里,但遇到问题 – 是最好的select?

使用ldirectord / LVS将HTTPredirect到HTTPS

我们使用LVS进行负载均衡,并希望将http://example.com的301redirect到https://example.com LVS启用https没有问题,但http真实服务器没有被添加到池(权重为0)。 LVS是否不遵循301redirect? 如果没有,我如何configurationldirectord发送所有HTTPstream量到HTTPS? 这里是nginxconfiguration: server { listen 80; server_name example.com; return 301 https://example.com$request_uri; } server { listen 443; ssl on; ssl_certificate server.crt; ssl_certificate_key server.key; server_name example.com; # more here } 和ldirectord.cf看起来像这样: virtual=VIP:80 fallback=127.0.0.1:80 real=10.0.0.7:80 masq 5 real=10.0.0.8:80 masq 5 service=http request="lvs.htm" receive="lvs" virtualhost=example.com scheduler=wlc protocol=tcp checktype=negotiate virtual=VIP:443 fallback=127.0.0.1:443 real=10.0.0.7:443 masq 5 real=10.0.0.8:443 masq 5 […]

带有ssl的Nginx总是返回301

我正在尝试使用ssl来设置nginx,以便为某些静态HTML和某些Python脚本的输出(通过uwsgi)提供服务。 它对HTTP工作正常,但是我不能使它在HTTPS上运行,因为nginx正在返回一个“301 Moved Permanently”问题的URI(即,即使对于那些不存在的)。 我目前正在使用自签名证书,我的想法是强制HTTPS连接。 我究竟做错了什么? 它看起来像一个nginxconfiguration问题? ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; server { listen 443 ssl; server_name myserver.com; ssl_certificate /srv/ssl/nginx.pem; ssl_certificate_key /srv/ssl/nginx.key; location / { rewrite ^ https://$server_name$request_uri? permanent; } } (obviusly, myserver.com代表实际的服务器名称)。 编辑 :错别字。

IIS 8 URL在站点级redirect

我试图做一个简单的301烫发redirect到IIS 8中的另一个url。最终结果将是如果我导航到domain2.com我最终会在domain1.com。 我们正在从IIS 6移动到一个新的服务器,并有600个以上的站点,将configuration在这个IIS 8框。 所有这些网站都运行专有的CMS,并且正在查看源代码的相同目录。 在IIS 6中,我只需转到每个站点的主目录选项卡,然后选中“永久redirect”框并提供一个URL。 在IIS 8中,有“HTTPredirect”,这看起来好像是可以做到的,但是它被应用到IIS 8中共享相同源代码目录的所有站点。 不是在IIS 6的网站级别使用。我也研究了IIS 8的URL重写模块,但它似乎采取了防火墙的风格规则,我不确定是否可以有效地创build规则,以迎合到600多个网站。 我正在寻找在我的网站级别redirect的最简单的方法,以便具有多个域名的客户可以在那里将网站redirect到主域名以用于seo目的。 我觉得这在IIS 6中很容易实现,我必须在新版本中忽略一些东西。

西里尔文URL的HTTPredirect:这个例子没有被编码的​​URL。 为什么?

根据https://tools.ietf.org/html/rfc5987 ,应使用ISO-8859-1字符编码返回HTTP头字段。 这也适用于用于redirect的位置字段。 然而,看下面的例子,我不知道如何redirect工作,尽pipeURL不编码。 http://goo.gl/m5fDF0 我运行了不同的工具,包括谷歌浏览器开发人员,位置字段绝对是编码,但使用CURL或Screaming Frog等软件返回用西里尔文字符写的位置。 理论上redirect应该在404中解决,但是我得到了200。 任何想法如何这是可能的?

分派器上的Apache重写规则

我怎样才能做一个重写规则http://example.com/abc重写/redirect到http://example.com/abc.html但它应该工作时,我的URL为http://example.com/abc/def.html 。 目前,当我redirect 301 "abc" "abc.hml" ,第二个URL也redirect到http://example.com/abc.html/def.html 。 我目前的规则。 <IfModule rewrite_module> RewriteEngine On RewriteRule ^/$ /content/aaa-123/abc.html [PT,L] RewriteRule ^/index.html$ /content/aaa-123/abc.html [PT,L] RedirectMatch ^/abc$ /abc.html RewriteCond %{REQUEST_URI} !^/(.*)/$ RewriteCond %{REQUEST_URI} !^(.*)\.(.*)$ RewriteRule ^/(.*)$ /content/$1/ [L] RewriteRule \.(css|jpe?g|gif|png|js)$ – [L] ErrorDocument 404 /errors/404.html <IfModule mod_expires.c> ExpiresActive on ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" […]

如何检查是正在使用规范化的域名? Apache 301redirect不保留referrer

我有多个域被设置为redirect(301)到我的主域。 不过,我知道这些领域中的一些在search引擎优化方面几乎没有任何价值,我想摆脱它们。 但我的一个担心是,在这些领域下可能存在反向链接。 我检查了谷歌分析,并没有出现这些域名,但我决定确认他们会注册,如果他们使用。 不幸的是,在testing中,我的Apache 301redirect似乎没有保留引用的URL。 我知道这在很大程度上取决于客户,但似乎共识是大多数时候这是保留。 在现代浏览器中是否有任何设置指示他们在redirect时删除引用链接? 我在Firefox,Chrome和IE中遇到这种情况。 有什么我可以做的服务器端,可能会影响客户端,以保持引荐? 如果这是一个死胡同,还有什么其他方法来检查这些别名域的反向链接或用法? 这是我的redirect: ## Redirect non www to www RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] RewriteRule ^(.*)$ https://www.example.com$1 [R=301,L]

301使用IIS从mydomain.co.ukredirect到www.mydomain.co.uk

我很快就会购买一个虚拟的Windows服务器,并将使用IIS7 我渴望search引擎优化的目的301redirect任何用户从mydomain.co.uk www.mydomain.co.uk,但因为我有我的服务器的根访问我想使用IIS7,而不是修改我的应用程序 任何人都可以解释这是如何完成的? 谢谢 Trueglly 🙂