VPS侦探论坛

 找回密码
 注册
查看: 1261|回复: 8

lnmpa环境,二级域名绑定根目录文件夹,访问进行跳转问题

[复制链接]
发表于 2023-7-4 09:38:11 | 显示全部楼层 |阅读模式

如标题,我现在有一个子域名站点绑定了根目录的文件夹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.         }
复制代码

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


美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2023-7-4 17:47:44 | 显示全部楼层


  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.     }
复制代码
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2023-7-5 08:11:22 | 显示全部楼层


前面都 return 301 了后面肯定就都不执行了
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2023-7-5 09:15:37 | 显示全部楼层



本帖最后由 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.     }
复制代码
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2023-7-6 09:19:58 | 显示全部楼层

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

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

location / {
return xxxx;
}

军哥运维代购:http://shop63846532.taobao.com/

 楼主| 发表于 2023-7-6 10:20:34 | 显示全部楼层

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/  类似栏目跳转。
发表于 2023-7-7 08:18:12 | 显示全部楼层

caiheqing 发表于 2023-7-6 10:20
谢谢军哥回复,我加了一行代码

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

include proxy-pass-php.conf;
删掉就行了
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2023-7-7 14:15:45 | 显示全部楼层

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):
解决了,谢谢军哥这几天赐教
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2023-7-9 08:24:22 | 显示全部楼层


caiheqing 发表于 2023-7-7 14:15
谢谢军哥的回复!现在http都可以跳转了,但https就不行,如
打开https://www.snsnz.com/m/shehua/shechip ...

那就是没有匹配上,可能配置上你哪里可能还有问题
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-11-5 12:23 , Processed in 0.028437 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表