Articles of redirect

nginx,redirecthttp到https不按预期方式工作

我的意图是将所有请求redirect到https://前缀URL和裸地域以及www.*等效项。 acme-challengeurl将被排除在外。 我试着用下面的configuration,并从赤裸裸的域获得正确的redirect,但是当我访问www. 前缀一,我提供了默认的服务器,没有redirect到端口443服务器,并从https服务器根服务。 为什么是这样? server { listen 80; listen [::]:80; server_name example.org www.example.org; location '/.well-known/acme-challenge/' { root /var/www/challenges; } location / { return 301 https://$host$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; server_name example.org www.example.org; ssl_certificate /etc/nginx/ssl/example.org.pem; ssl_certificate_key /etc/nginx/ssl/example.org.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA; ssl_session_cache shared:SSL:50m; ssl_dhparam /etc/nginx/ssl/dhparams.pem; […]

为什么这些htaccess指令之一删除查询string,而另一个不?

我正在努力弄清楚为什么这些htaccess指令之一删除查询string和其他不。 RewriteCond %{QUERY_STRING} p=invitations RewriteRule ^index.php$ /Invitations? [L,R=301,QSD] RewriteCond %{QUERY_STRING} p=corporate_invitations RewriteRule ^index.php$ /Invitations/Corporate? [L,R=301,QSD] 第一个将从像/index.php?l=page_view&p=invitations这样的URLredirect,并正确地重写为/ Invitations 。 第二,如果您导航到/index.php?l=page_view&p=corporate_invitations,您将被redirect到/ Invitations / Corporate?l = page_view&p = corporate_invitations 。 所以我的问题是为什么第一个删除查询string和第二个不。 – 编辑 – 由于我在Apache 2.4.12上,我删除了? 最后QSD正在为其他线路正常工作。 我添加了更多的规则,唯一一个无法删除查询string的是Invitations / Corporate。 它确实redirect,但留下了查询string。 我认为这可能是在规则的中间,但邀请/党正在正常工作。 整个.htaccess文件是: Options +FollowSymlinks RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] RewriteCond […]

为什么nginx在表单提交后redirect?

我有conf: location ~ ^/secret(.+) { rewrite ^/secret(.+)$ /phpmyadmin$1; } location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; auth_basic "Auth"; auth_basic_user_file /etc/nginx/pass/.pma; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; include sites-available/common/php; } internal; } 提交login表单phpmyadmin后,我已被redirect到mysite.com/phpmyadmin/index.php?token=…而不是mysite.com/secret/index.php?token… 为什么这样做?

使用https时,IIS 8.5redirect到错误的站点

运行IIS的服务器有一个奇怪的问题。 服务器正在运行多个网站(在不同的IP地址上),其中一些使用SSL,另一些则不使用。 当您尝试使用https访问网站时,该问题就出现在该网站没有任何https绑定的情况下。 服务器自动redirect到具有https的服务器上的另一个站点(始终是它自己的IP地址上的同一站点)。 没有URL重写规则,没有任何我可以在任何地方看到的特殊configuration。 我试图把重写规则作为一个网站的testing,但是却被忽略了。 我无法看到它是如何做到这一点的。 有没有人有任何想法? 谢谢, 斯图尔特

域和URL的URLredirect(Windows Server 2012)

我正在closures一个旧的内部网应用程序,为了取悦我的用户,我希望有一个友好的页面,告诉他们需要查看的地方。 然而,另一个团队已经发布了一个包含旧应用程序链接的文档,并且不会改变它。 所以我坚持一个问题 – 如何将发布的链接redirect到新的位置,并将所有其他stream量redirect到应用程序的友好的地方。 例如对于单个页面: example.com/page/foo.aspxredirect到example.org 以整个域为例: example.comredirect到example.org/information.html example.com/anotherpage.aspx也redirect到example.org/information.html 我有这个工作的单个url,但是在IIS 8中,我不知道我应该把整个域的redirect。 我假设我也需要对规则进行排名,以便页面首先受到影响,然后覆盖redirect。

lighttpd身份validation之前redirect从https到http

我想在authentication之后从httpsredirect到http ,所以凭证通过一个安全通道,但其他所有内容都以纯文本forms传输。 这里是conf文件的相关部分: ## Auth # https://redmine.lighttpd.net/projects/1/wiki/docs_modauth # type of backend # plain, htpasswd, ldap or htdigest auth.backend = "htpasswd" # for htpasswd auth.backend.htpasswd.userfile = "/etc/apache2/auth.htpwd" auth.require = ( "" => ( "method" => "basic", "realm" => "Authorization required", "require" => "valid-user" ) ) ## Simple SSL # https://redmine.lighttpd.net/projects/1/wiki/HowToSimpleSSL $SERVER["socket"] == ":443" { ssl.engine = […]

Nginx重写规则子文件夹404错误

我不知道如何设置我的index.php文件与Nginx的重写规则,它会像下面的例子一样工作。 如果我访问的url,它给了我404错误没有findinstad回声'你好'。 url: http://www.example.com/directory/sub-directory/ /子目录/从给定的URL实际上不是真正的目录里面/目录/。 如果我访问的URL,我得到了404错误 – 这是真的好,但/子目录/是友好的url(没有查询?参数=价值)。 /子目录/不是固定值(在这个例子下面),它可以是/子目录 – 新/ – 依赖。 那么,对于URL中的/ value / after / directory /中的任何值,如果我访问那种types的URL,怎么会不会得到404错误? / directory /中的Index.php $actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $wanted = "sub-directory"; $tokens = explode('/', $actual_link); $result = $tokens[sizeof($tokens)-2]; // result is "sub-directory" if($wanted == $result) { echo "hello"; } Nginx的: location /directory { try_files $uri $uri/ /directory/$uri; […]

redirect到子域URL,同时保留原始URL和从子域URL中提供文件

我想要访问www.example.com并将其redirect到subdomain.example.com/homepage,而不必从www.example.com更改url。 比我的CSS和JS的捕获是在subdomain.example.com托pipe。 我正在为最后一部分苦苦挣扎。 到目前为止,我有这样的: http { upstream meteor_server { ip_hash; server 192.168.0.24:88; } server { server_name www.example.com; location / { proxy_pass http://meteor_server/homepage/; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } server { server_name subdomain.example.com; location / { proxy_pass http://meteor_server/; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_http_version 1.1; […]

redirect别名,但不是IP

我有一个虚拟私人服务器下debian 7。 在这个服务器上,我有一个可以访问的网站,比方说https://www.monsiteweb.fr 我的IP地址是212.227.100.200 ,我可以通过212.227.100.200/phpmyadmin访问phpMyAdmin 我想将monsiteweb.fr * .monsiteweb.fr的用户redirect到https://www.monsiteweb.fr 。 问题是,当我做这个redirect,我不能再访问212.227.100.200/phpmyadmin自动重写为htps://www.monsiteweb.fr/phpmyadmin (我写htps而不是https,因为我不能在post上添加2个以上的链接) 我怎么能这样做,monsiteweb.fr * .monsiteweb.frredirect到htps ://www.monsiteweb.fr但212.227.100.200不redirect? 在/ etc / apache2 /网站启用/我有3个文件,我可能搞砸了经验不足: 文件1:000-默认 <VirtualHost *:80> ServerAdmin [email protected] ServerName monsiteweb.fr ServerAlias monsiteweb.fr *.monsiteweb.fr Redirect permanent / https://www.monsiteweb.fr DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from […]

使用AJP代理的Apache / Tomcat Web服务器 – 如何重写/redirectURL

我有一个在Tomcat上运行Jaspersoft Server的Web服务器,使用Apache和AJP Proxy for SSL。 现在,当我们导航到serverhostname时,它将我们redirect到https:// serverhostname 。 相反,我希望它redirect到https:// serverhostname / jasperserver并直接进入应用程序。 (这个URL与我们的CAS SSO系统链接,所以它会再次redirect到一个login屏幕,但我认为没关系。) 我尝试使用VirtualHost,但它似乎没有做任何事情。 再一次,我可能会错误地使用它。 <VirtualHost *> ServerName serverhostname Redirect permanent / https://serverhostname/jasperserver/ </VirtualHost> 代理代码 <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / ajp://serverhostname:8009/ ProxyPassReverse / ajp://serverhostname:8009/ <Location / > Order allow,deny Allow from all </Location> 谢谢你的帮助!