VPS侦探论坛

标题: lnmpa环境,二级域名绑定根目录文件夹,访问进行跳转问题 [打印本页]

作者: caiheqing    时间: 2023-7-4 09:38
标题: lnmpa环境,二级域名绑定根目录文件夹,访问进行跳转问题
如标题,我现在有一个子域名站点绑定了根目录的文件夹m,现在访问https://www.x.com/m 没有跳转到https://m.x.com,或者访问https://www.x.com/m/* 这里面所有的文件夹都无法跳转到对应的移动站https://m.x.com/*
我在www.x.conf 配置文件server写了这个代码,但无效
  1.         location ~* ^/m/
  2.         {
  3.            rewrite ^/m/(.*)$ https://m.x.com/$1 permanent;
  4.         }
复制代码

不知道什么原因,请教一下各位,谢谢!



作者: caiheqing    时间: 2023-7-4 17:47
  1. server
  2.     {
  3.         listen 80;
  4.         #listen [::]:80;
  5.         server_name www.snsnz.com snsnz.com;
  6.         index index.html;
  7.                 return 301 https://www.snsnz.com$request_uri;
  8.                 if ($host != 'www.snsnz.com' )
  9.         {
  10.           rewrite ^/(.*)$ https://www.snsnz.com/$1 permanent;
  11.         }
  12.         if  ( $http_user_agent ~* "(iPhone|iPad|iPod|iOS|Android|Mobile|nokia|samsung|htc|blackberry)")
  13.         {
  14.            rewrite ^/tag/(.*)$ https://m.snsnz.com/tag/$1 permanent;
  15.         }
  16.         root  /home/wwwroot/www.snsnz.com;

  17.         #error_page   404   /404.html;

  18.         # Deny access to PHP files in specific directory
  19.         #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

  20.         location ~* ^/m/
  21.         {
  22.            rewrite ^/m/(.*)$ https://m.snsnz.com/$1 permanent;
  23.         }
  24.         include proxy-pass-php.conf;

  25.         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  26.         {
  27.             expires      30d;
  28.         }

  29.         location ~ .*\.(js|css)?$
  30.         {
  31.             expires      12h;
  32.         }

  33.         location ~ /.well-known {
  34.             allow all;
  35.         }

  36.         location ~ /\.
  37.         {
  38.             deny all;
  39.         }

  40.         access_log  /home/wwwlogs/www.snsnz.com.log;
  41.     }
复制代码

作者: licess    时间: 2023-7-5 08:11
caiheqing 发表于 2023-7-4 17:47

前面都 return 301 了后面肯定就都不执行了
作者: caiheqing    时间: 2023-7-5 09:15
本帖最后由 caiheqing 于 2023-7-5 09:17 编辑
licess 发表于 2023-7-5 08:11
前面都 return 301 了后面肯定就都不执行了

谢谢军哥的回复,那我把return 301 放在所有的if后面,好像也不行,代码
  1. server
  2.     {
  3.         listen 80;
  4.         #listen [::]:80;
  5.         server_name www.snsnz.com snsnz.com;
  6.         index index.html;
  7.                 if ($host != 'www.snsnz.com' )
  8.         {
  9.           rewrite ^/(.*)$ https://www.snsnz.com/$1 permanent;
  10.         }
  11.         if  ( $http_user_agent ~* "(iPhone|iPad|iPod|iOS|Android|Mobile|nokia|samsung|htc|blackberry)")
  12.         {
  13.            rewrite ^/tag/(.*)$ https://m.snsnz.com/tag/$1 permanent;
  14.         }
  15.         root  /home/wwwroot/www.snsnz.com;

  16.         #error_page   404   /404.html;

  17.         # Deny access to PHP files in specific directory
  18.         #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

  19.         location ~* ^/m/
  20.         {
  21.            rewrite ^/m/(.*)$ https://m.snsnz.com/$1 permanent;
  22.         }
  23.        return 301 https://www.snsnz.com$request_uri;
  24.         include proxy-pass-php.conf;

  25.         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  26.         {
  27.             expires      30d;
  28.         }

  29.         location ~ .*\.(js|css)?$
  30.         {
  31.             expires      12h;
  32.         }

  33.         location ~ /.well-known {
  34.             allow all;
  35.         }

  36.         location ~ /\.
  37.         {
  38.             deny all;
  39.         }

  40.         access_log  /home/wwwlogs/www.snsnz.com.log;
  41.     }
复制代码

作者: licess    时间: 2023-7-6 09:19
caiheqing 发表于 2023-7-5 09:15
谢谢军哥的回复,那我把return 301 放在所有的if后面,好像也不行,代码

只要单独使用了 return 301 就不会再进行匹配了,除非使用了 location 才会有先后顺序
把 return 301 加到一个 location / { } 里面

location / {
return xxxx;
}
作者: caiheqing    时间: 2023-7-6 10:20
licess 发表于 2023-7-6 09:19
只要单独使用了 return 301 就不会再进行匹配了,除非使用了 location 才会有先后顺序
把 return 301 加 ...

谢谢军哥回复,我加了一行代码
  1. location / {
  2. return 301 https://www.snsnz.com$request_uri;
  3. }
复制代码

报错:nginx:[emerg]duplicate location "/" in /uer/local/nginx/conf/proxy-pass-php.conf:2

根据提示是有重复使用项。我在其他location下面加了return 301 ,但还是无法跳转,如访问https://www.snsnz.com/m, 没跳转到https://m.snsnz.com ,访问https://www.snsnz.com/m/jianfei/jianfeishipu/ 没有跳转到https://m.snsnz.com/jianfei/jianfeishipu/  类似栏目跳转。
作者: licess    时间: 2023-7-7 08:18
caiheqing 发表于 2023-7-6 10:20
谢谢军哥回复,我加了一行代码

报错:nginx:[emerg]duplicate location "/" in /uer/local/nginx/conf/p ...

include proxy-pass-php.conf;
删掉就行了
作者: caiheqing    时间: 2023-7-7 14:15
licess 发表于 2023-7-7 08:18
include proxy-pass-php.conf;
删掉就行了

谢谢军哥的回复!现在http都可以跳转了,但https就不行,如
打开https://www.snsnz.com/m/shehua/shechipinpai/ 没有跳转到https://m.snsnz.com//shehua/shechipinpai/
打开http://snsnz.com/m/shehua/shechipinpai/ 直接跳转到https://www.snsnz.com/m/shehua/shechipinpai/这里应该跳转到https://m.snsnz.com/shehua/shechipinpai/
是不是这行代码还需要优化?
  1.         location ~* ^/m/
  2.         {
  3.            rewrite ^/m/(.*)$ https://m.snsnz.com/$1 permanent;
  4.         }
复制代码



补充内容 (2023-7-7 23:12):
解决了,谢谢军哥这几天赐教
作者: licess    时间: 2023-7-9 08:24
caiheqing 发表于 2023-7-7 14:15
谢谢军哥的回复!现在http都可以跳转了,但https就不行,如
打开https://www.snsnz.com/m/shehua/shechip ...

那就是没有匹配上,可能配置上你哪里可能还有问题




欢迎光临 VPS侦探论坛 (https://bbs.lnmp.com/) Powered by Discuz! X3.4