Articles of redirect

Nginx重写path到基本的URL

我正在尝试configurationNginx,以便http://domain.com/path所有请求都被重写为http://domain.com/ 。 我不想redirect,因为我希望URL仍然显示原始path。 示例重写: http://domain.com/path/index.php -> http://domain.com/index.php http://domain.com/path/category/books -> http://domain.com/category/books http://domain.com/path/books.php?q=harry -> http://domain.com/books.php?q=harry 我尝试alias和root但我无法让他们工作。 location /path { root /var/www/html/; } location /path { alias /var/www/html/; }

如何在传统的Flask应用程序中实现虚荣URL?

我遇到了一个问题,那就是我需要将旧版Flask应用程序中的现有URLredirect或replace为更“虚荣”的URLscheme。 例如: www.example.org/camp – >确实指向https://example.org/connect/rally_camps/register 虽然我设法做这个工作使用nginxconfiguration(这是使用典型的uwsgi +反向代理nginxconfiguration为serverd): location /camp { rewrite ^/.* https://example.org/connect/rally_camps/register permanent; } 当我打到虚荣url时,我被redirect到非虚荣url(长一个)。 这显然看起来丑陋…我不知道是否有办法告诉nginxredirect,但保持相同的URL或这是需要一些Flask的工作… 301redirect时,用户点击虚荣URL到长URL ? 但是,我认为这将再次改变url…任何想法? 谢谢!

使用Nginx在Ghost博客上进行SSLredirect和身份validation

我在DigitalOcean上有一个关于Ghost的博客。 Nginx也提供相同的configuration文件: server { listen 443 ssl; server_name www.example.com; return 301 $scheme://example.com$request_uri; } server { listen 443 ssl; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; include snippets/ssl-params.conf; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:2825; } } 这些证书是通过让我们encryption生成的,无论是有没有www的域。 在Ghost config.js文件中,URL是使用规则编写的: https : //example.com/问题是,当我进入我的博客,没有wwww的我的域,正确地login并使用SSL,但是当我尝试使用https://www.example.comlogin时,出现SSL证书authentication错误。 我真的不明白这里可能会出现什么问题。 我需要,当进入我的域名与www我redirect到域,但没有www。 我之前做过的这个操作与其他应用程序节点没有问题,具有上面相同的configuration代码。

了解NGINX HTTP到HTTPSredirect

我已经设置nginxredirectHTTPstream量到HTTPS是这样的: server { listen 80; server_name git.mydomain.it; return 301 https://$host$request_uri; } 我可以通过HTTPS和HTTP成功连接。 当我做git clone http://git.mydomain.it/oznt/tracker.git我被提示正确的URL: $ git clone http://git.mydomain.it/oznt/tracker.git Cloning into 'tracker'… Username for 'https://git.mydomain.it': 到现在为止还挺好。 但是我想知道当我input密码时会发生什么。 它是受保护的,就好像我直接连接到https://git.mydomain.it或者是第一次在明确的文本传输到HTTP端点,然后被redirect?

为什么我的Nginx别名redirect不起作用(转到404)?

我有我的主要网站在x.com(@ /var/www/x.com/index.html ) # MAIN LOCATION location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; #autoindex on; proxy_set_header X-Real-IP $remote_addr; } 我想/ v2redirect到另一个本地目录(@ /var/www/x.com/v2/public/index.html ) # Redirect beta site location /v2 { alias /var/www/x.com/v2/public; } 这似乎应该工作,但相反,它是去我的404网站。 不知道这是否重要,但这里是我的根源: # […]

HTTPFound返回的位置标头不包含非标准的端口号

我有一个金字塔应用程序运行在nginx后面(监听端口8080)上的gunicorn(在Unix套接字上侦听)。 当Pyramid视图返回HTTPFound(location='/') HTTP响应包含Location: http://example.host/没有端口号,所以用户得到“无法连接”的错误。 我找不到指定非标准端口号的位置,或者(最好)在生成Location标题时告诉金字塔从请求中提取它。 从应用程序configuration摘录: [server:main] use = egg:gunicorn#main host = unix:%(here)s/run/server.sock workers = 4 Nginxconfiguration: server { listen 8080; root /path/to/app; location / { proxy_pass http://unix:/path/to/app/run/server.sock; include proxy_params; } location /static { root /path/to/app/static; } }

在nginx反向代理上的应用redirect错误

我正在运行一个nginx(0.7.67)作为反向代理和一个golang应用程序。 nginx服务器configuration如下: … location /bar/ { proxy_pass http://localhost:8088/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } … 我的golang应用程序的来源(这是没有道理的,只是一个例子): func root(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "You reached root") } func foo(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "/", http.StatusFound) } func main() { http.HandleFunc("/", root) http.HandleFunc("/foo", foo) http.ListenAndServe("localhost:8088", […]

如何redirect并从URL中删除.html扩展名?

我在这个configuration一些重写规则的同时撕掉我的头发。 我在Debian Wheezy机器上运行nginx 1.2.1。 考虑下面的树: / ├── index.html ├── folder/ │ └── index.html └── file.html 我希望这些文件由nginx提供,这样就不需要在URL中指定任何.html ,并且任何对folder/index.html调用都被重写到folder/ ,所有对file.html调用都是在index重写。 这里是这个描述的正式版本。 请求示例在左边,我试图得到的相应的响应在右边(HTTP代码301 +redirect位置或HTTP代码200 +要显示的文件): 1. http://example.com/ -> 200 (/index.html) 2. http://example.com/index.html -> 301 http://example.com/ 3. http://example.com/index -> 301 http://example.com/ 4. http://example.com/file -> 200 (/file.html) 5. http://example.com/file.html -> 301 http://example.com/file 6. http://example.com/folder/ -> 200 (/folder/index.html) 7. http://example.com/folder -> […]

奇怪的phpredirect与nginx(在Apache中工作正常)

最后,我决定在几个小时后试着问,寻找和研究。 几个月前,我把我的网站迁移到一个更新的版本,一切工作正常,我的旧主机在Apache。 最近我迁移到一个VPS,我决定使用Nginx作为服务器,我正在细节。 我的问题是,我正在尝试使用PHP脚本进行一些特定的redirect。 redirect在apache(本地和remotelly)中工作得很好,但是在nginx中却不行。 奇怪的行为是,例如,当我尝试使用URL fakesite.tk/Section/index.php Apacheredirect到fakesite.tk/Section/但Nginx返回404错误,如果我尝试的URL fakesite.tk/Section/ index.php /神秘地工作(注意斜线在最后)并redirect到fakesite.tk/Section//(注意双斜杠) 我尝试添加一个斜杠到所有URLS的结尾,但是这个redirect在Nginx中同样不起作用。 如果它很重要,我的VPS在Ubuntu(iquals是我的主机)上运行,我在Windows机器上进行testing。 有我的Nginx站点configuration文件: server { server_name *.fakesite.tk; return 301 $scheme://www.fakesite.tk$request_uri; } #Redirect non www to www site version server { server_name fakesite.tk; return 301 $scheme://www.fakesite.tk$request_uri; } server { listen 80; listen [::]:80; root /var/www/SiteFolder; index index.php; server_name www.fakesite.tk; #Stabilishing error 404 and 403 error […]

Nginxredirect到哈希

我在nginx中有这个虚拟主机,但我需要redirect# (utm参数)如何做到这一点? server { server_name www.example1.com; return 301 https://www.example2.com$request_uri; # here I need add utm parameters }