Articles of url

如何在传统的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重写像mysite.com?t=TVALUE&foo=bar&bar=bazz mysite.com/TVALUE?foo=bar&bar=bazz & mysite.com?t=TVALUE&foo=bar&bar=bazz mysite.com/TVALUE?foo=bar&bar=bazz & mysite.com?t=TVALUE&foo=bar&bar=bazz mysite.com/TVALUE?foo=bar&bar=bazz的url为mysite.com/TVALUE?foo=bar&bar=bazz ? 我所有的尝试都导致无限redirect或根本没有redirect。

如何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 -> […]

Nginx URL重写规则在我的pipe理中

如何在login到后端后重写URL? 我需要将以下内容从www.domain.com/administration/index.php,www.domain.com/administration/nextpage.php更改为www.domain.com/administration/index,www.domain.com/administration/nextpage这是我的实际configuration: server { server_name domain.com; return 301 $scheme://www.domain.com$request_uri; } server { listen 80; root /usr/share/nginx/www; index index.php; server_name www.domain.com; location / { rewrite ^([^\.]*)$ /$1.php; } location = / { rewrite ^ /index.php; } location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/var/run/php5-fpm.sock; } location ~ /\.ht { deny all; } }

nginxurl重写与代理通例子?

我需要知道如何做一个代理通过在nginx的某些url模式只 我已经写了下面的内容,但我不确定是否按照我的要求工作。 我想要的是 1. if the url matches '/member-chat' it needs to be redirected the proxy pass 2. anything else needs to be re-written as below 是什么书面是正确的? location ^/member-chat { proxy_pass http://lxx.com:5280/http-bind; } location !/member-chat { rewrite ^/files/([^/]+)/([^/]+)$ /_files/$1/$2; rewrite ^/plugins/([^.]+) http://www.lxx.com:9090/plugins/$1; } 如果我这样做如下 location / { rewrite ^/files/([^/]+)/([^/]+)$ /_files/$1/$2; rewrite ^/plugins/([^.]+) http://www.lxx.com:9090/plugins/$1; } 我得到一个错误 […]

是否有可能转发一个使用nginx代理到端口相同的url获取请求

我有一个简单的Python瓶api和一个nginx服务器,主机的index.html,使ajax请求的端口8001本地主机上运行瓶api。问题是我不处理CORS,因为它运行在封闭的环境,它只是一个简单的API来pipe理一些活动目录的东西,它位于防火墙和基本身份validation。 我并不担心跨站点脚本。 我需要知道的是,如果我编程从我的ajax请求 $.ajax({ type: "GET", url: "http://localhost:8001/newuser/" + "firstName=" + fname + "&lastName=" + lname + "&email=" + email + "&password=" + new_password, success: function(data){ alert(data); document.getElementById("alert").innerHTML = data.toString(); } }); 至 $.ajax({ type: "GET", url: "/newuser/" + "firstName=" + fname + "&lastName=" + lname + "&email=" + email + "&password=" + new_password, success: […]

添加从$到$ .php重写后,nginx CSS中断

如果我将下面一行添加到我的nginxconfiguration中,它会打破我的网站,并将运行没有CSS: location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|svg|xml)$ { access_log off; expires 30d; } location / { try_files $uri $uri/ $uri.php =404; rewrite ^/(.+)$ /$1.php last; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } 如果我评论重写条件,一切都会正常工作。 我能做些什么来使这两个工作,重写条件和CSS样式表? 编辑:我有一个新的问题,现在所有的文件,如test.php工作正常,没有写.php ,但像users/文件夹将无法正常工作,我仍然File not found ,通常应该采取index.php或index.html从文件夹的index.html ,我怎么能提供这两个function? 添加.php文件并使用inde.php/html文件夹?

如何在传递给脚本之前从url中删除一个子目录?

这在SO之前已经被问过了,但答案还没有被推广。 所以在这里。 我有两个不同的networking应用程序。 他们被制作在不同的服务器上。 但现在他们将被放置在同一台服务器上的子目录中。 下面的脚本将子目录和URI一起发送到脚本。 这是个问题。 旧url: http://store.example.com/items/1 http://backoffice.example.com/accounts/1234 新的url: http://www.example.com/store/items/1 http://www.example.com/backoffice/accounts/12345 商店网站正在查看/store/items/1当它只想看/items/1 。 对于后台网站也是如此。 我的尝试: location /store { try_files @store_site; } location /backoffice { try_files @backoffice_site; } location @store_site { include uwsgi_params; uwsgi_pass unix:/var/run/uwsgi/store_site.sock; proxy_set_header Host $host; } location @backoffice_site { include uwsgi_params; uwsgi_pass unix:/var/run/uwsgi/backoffice_site.sock; proxy_set_header Host $host; } 同样,商店网站正在获取具有/store前缀的URL,并且后台正在获取/backoffice 。 这些网站被编码为不期望这些前缀。 在发送到实际站点之前,我需要删除/store和/backoffice前缀。 […]

nginx / redis和处理URL跟踪参数

我在我的网站上使用nginx和redis。 对于我的网站上的几个项目,我想添加跟踪参数到他们的url,以便当用户点击一个项目时,我可以收集用户请求的内容用户服务的统计数据。 我正在寻找如何从nginx获取redis中的统计信息的方法,也就是说,不需要打开后台应用程序。 例如,假设我在页面上有几行表格,每个表格都以行/列格式保存着项目。 因此,对于{table:2,row:1,column:3}中的项目,如果实际的url是:www.mysite.com/news/dodi,那么我想要embeddedurl:www.mysite.com/news /多迪/天= 29?表= 2&行= 1&柱= 3。 当用户点击它时,nginx会触发redis来获取内容,并更新相应的统计信息(这里可以是第29天,第2天……)。 任何build议我如何实现这一点,而不击中背景应用程序?

用nginx掩盖PHP GET url

我有一个使用PHP的网站。 这是一个允许某人使用PHP GET调用来search数据库的网站。 然后显示所有符合search的项目。 有许多searchfilter(价格,来源网站,类别)。 这是search后,用户input“蓝色车”和“达拉斯” http://example.com/after_search.php?search_title=blue+cars&search_location=Dallas&price-0=index&price_max=&price_min=&category=every-cat&store=all&max_number=20 有没有办法让它看起来像这样: http://example.com/s/blue+cars/l/Dallas 而不改变代码结束的任何GETfunction? 我也有在网站上运行的JQuery,如果这是可以用来解决这个问题。 注意:我正在使用nginx 编辑1 鉴于下面的build议这似乎是一个nginx的问题。 这是我目前的/ etc / nginx / sites-available / default文件: server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.php index.html index.htm; server_name server_domain_name_or_IP; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 […]