我正在使用这个重写规则redirect example.com/abc?id=learn-more —-> http://example.com/abc?id=learnmore rewrite ^/abc?id=learn-More http://example.com/abc?id=learnMore permanent 但它不工作! 它正在redirect到 example.com/abc?id=learn-more(learn-more不会转换为learnmore)。 如何做到这一点?
在Nginxconfiguration文件中,没有设置像下面的重写位置,但不工作,每次返回404没有find,这里有什么问题? server { listen 80; server_name mydomain.com www.mydomain.com; root /var/www/html/mydomain.com; . . . location /postfixadmin { root /var/www/html/postfixadmin/; index index.php index.html index.htm; location ~ ^/postfixadmin/(.+\.php)$ { try_files $uri $uri/ =404; root /var/www/html/postfixadmin/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* […]
我试图将我的本地服务器的简报URLredirect到Amazon S3存储桶。 所以我想redirect从: https://mysite.com/assets/img/newsletter/Jan12_Newsletter.html 至: https://s3.amazonaws.com/mybucket/newsletters/legacy/Jan12_Newsletter.html 这是我的规则的第一部分: RewriteEngine On RewriteBase / # Is it in the newsletters directory RewriteCond %{REQUEST_URI} ^(/assets/img/newsletter/)(.+) [NC] # Is not a 2008-2011 newsletter RewriteCond %{REQUEST_URI} !(.+)(11|10|09|08)_Newsletter.html$ [NC] ## -> RewriteRule to S3 Here <- ## 如果我使用这个RewriteRule指向S3上的新子目录,它不会redirect: RewriteRule ^(/assets/img/newsletter/)(.+) https://s3.amazonaws.com/mybucket/newsletters/legacy/$2 [R=301,L] 但是,如果我使用一个expression式来捕获整个文件path,它将redirect: RewriteRule ^(.*)$ https://s3.amazonaws.com/mybucket/newsletters/legacy/$1 [R=301,L] 为什么它只适用于“匹配所有”expression式,而不是一个更具体的expression式?
下面的情况是可能的,我如何将它归档到共享主机环境中? 我有一个Wordpress安装驻留在,比如说, /httpdocs/wordpress 我的网域指向这个文件夹。 所以打电话 http://example.com 导致Wordpress页面。 现在我想添加第二个系统。 但我不想污染我的Wordpress,并希望将其存储在此文件夹之外。 我仍然希望它可以通过 http://example.com/other-system 即使它驻留在文件系统中 /httpdocs/other-system 并不是 /httpdocs/wordpress/other-system 那可能吗? 我有什么意义吗? 谢谢!
我假设这对于任何有nginx知识的人来说都是一件容易的事情。 我打电话这样的URL: /site-preview/css/custom-styles.css?org=myorg custom-styles.css文件实际上并不存在。 所以,我想重写URL来实际服务这个: /css/custom-styles.php?org=myorg 我来自Apache世界,我有这个工作在我的.htaccess文件。 在我的nginxconfiguration中,我尝试了如下的东西: location /site-preview { rewrite ^/site-preview/css/custom-styles.css?(.*) /css/custom-styles.php?$1 last; } 和: location /site-preview { rewrite ^css/custom-styles.css?(.*) /css/custom-styles.php?$1 last; } 以及在location块之外进行rewrite 。 提前致谢。
我正在为传递给index.php的url参数重写一些Nginx。 老: ?topic=10126.msg36887 新: ?posts/36887/ 我的两个问题: 1)如何重写新的参数结构,因为它使用“参数/值/”而不是传统的“参数=值”结构? 2)我的“如果”的声明是不触发的,我不明白为什么…testingurldomain.com/forum/index.php?topic=10126.msg36887应redirect到/success ,但它是根本不会改写。 这是我目前的Nginxconfiguration: location /forum/ { index index.php index.html index.htm; try_files $uri $uri/ /forum/index.php?$uri&$args; location /forum/index.php { # I know Nginx 'If is Evil', but it's the only way # to trigger rewrites on url parameters if ($arg_topic ~ [0-9]+\.\bmsg([0-9]+) { # testing whether 'if' triggers: rewrite ^ […]
我有一个服务器,将有2个不同types/格式的请求进来。两个请求的URL将开始: http://myredirect.mycompany.com/browse/ : http://myredirect.mycompany.com/browse/ 。 在'/ browse /'之后,它将是一个数字: http://myredirect.mycompany.com/browse/12345, it can be any number 或者它将是2到4个大写字母,后跟一个“ – ”,后跟一个数字: http://myredirect.mycompany.com/browse/QA-12345 我想要做的redirect到一个基于传入URL的不同的URL。 例如: http://myredirect.mycompany.com/browse/12345 would redirect to http://serverA.mycompany.com/show_item.cgi?12345 和 http://myredirect.mycompany.com/browse/QA-12345 would redirect to http://serverB.mycompany.com/browse/QA-12345 我想我想要的是使用nginx重写,但我不知道如何形成。 从我googlesearch,你可以使用正则expression式重写,所以我可以使用类似的东西 ^(/browse/[0-9])? 为第一个。 但是,我怎么才能真正把这个号码拉到redirecturl? 谢谢!
我无法设置从* .domain.tld / personal到domain.tld / personal的redirect server { server_name domain.tld www.domain.tld *.domain.tld; listen 100.10.10.1; set $root_path /var/www/user1536/data/www/new.domain.tld; location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ { root $root_path; access_log /var/www/nginx-logs/user1536 isp; access_log /var/www/httpd-logs/domain.tld.access.log ; error_page 404 = @fallback; } location /personal { if ($http_host != domain.tld) { rewrite ^ http://domain.tld/personal; } } location / { proxy_pass http://100.10.10.1:81; proxy_redirect http://100.10.10.1:81/ /; […]
我想为网页上的每个链接注入“项目名称”。 例如:链接和网站http:// localhost / osqa /正在工作,但是当我在osqa页面上时,所有链接都直接指向本地主机http:// localhost / account / signin / – 被破坏… 所以我想重写/redirect所有链接指向项目名称位置,如http:// localhost / osqa / account / signin / 有没有可能,如果是的话怎么做? 现在我正在学习重写和try_files。 这是我的项目树结构,项目名称是(osqa,forum,other_project,another_project): /home/user/webapps/ ├── osqa │ ├── osqa │ ├── media │ └── static ├── forum │ ├── forum │ ├── media │ └── static ├── other_project │ ├── other_project │ […]
我正试图将这两个Nginx位置定义合并为一个 location /v1/login { proxy_pass http://upstream/v1/login; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_pass_header Authorization; } location /v1/logout { proxy_pass http://upstream/v1/logout; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_pass_header Authorization; } 所以我想这样的事情应该做的工作 location ^~ /v1/(login|logout) { rewrite ^/v1/(.*)$ /v1/$1 break; proxy_pass http://upstream; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } 但是对于我的生活,我无法实现它的工作。 我在这里做错了什么? […]