香港主机空间推荐 快速稳定免备案 虚拟主机空间哪个好
返回列表 发新帖

伪静态设置apache转nginx-包含特定目录则不重定向[url短链接]

[复制链接]
回帖奖励 1 金钱 回复本帖可获得 金钱奖励! 每人限 次

1159

主题

1163

帖子

3912

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3912
QQ
发表于 2019-1-16 08:26:36  | 显示全部楼层 | 阅读模式
科护网站建设论坛在帮客户网站搭建linux服务器配置宝塔建站环境后,网站有些栏目可以设置url短链接(有利于网站seo优化),测试安装apache引擎网站长链接和短链接都可以打开,但是安装nginx引擎则原来的长链接可以打开,但是自己设置的短链接访问提示404。

根据云服务器环境搭建经验,定位是伪静态规则转换问题,下面的是apache环境下的.htaccess内容。

  1. <IfModule mod_rewrite.c>
  2.     Options +FollowSymlinks -Multiviews
  3.     ErrorDocument 404 /404.htm
  4.     RewriteEngine On

  5.     RewriteCond %{REQUEST_FILENAME} !-d
  6.     RewriteCond %{REQUEST_FILENAME} !-f

  7.     RewriteRule ^(.*)$ app.php?id=$1 [QSA,PT,L]
  8. </IfModule>

  9. RewriteEngine On
  10. RewriteCond %{REQUEST_FILENAME} !-d
  11. RewriteCond %{REQUEST_FILENAME} !-f
  12. RewriteRule ^(.*)$ https://xxx.com/app\.php/$1 [L]
  13. RewriteEngine On  
  14. RewriteBase /  
  15. RewriteCond %{SERVER_PORT} 80  
  16. RewriteRule ^(.*)$ https://xxx.com/$1 [R=301,L]
复制代码

结合上面的伪静态规则访问测试网站各个栏目的url,总结分析得出规律:url中包含index.php和app.php的不需要重定向;不包含这两个目录的就是短链接,需要将短链接重定向到站点根目录下 /app.php/短链接 ,具体nginx伪静态排除目录规则如下:

  1. if (!-e $request_filename) {
  2.     rewrite  ^/(?!index\.php|app\.php)(.*)[        DISCUZ_CODE_4        ]nbsp; /app.php/$1  last;
  3.     break;
  4. }
复制代码

这样 index.php,app.php就不会在伪静态内了,即短链接url可直接访问。

新手站长网朋友自己站点如果采用的web引擎是nginx,且伪静态设置需要排除指定目录,可以参考网站建设学习的这篇技术帖设置,下面是排除常用文件目录的nginx伪静态规则。

  1. if (!-e $request_filename) {
  2.     rewrite  ^/(?!index\.php|robots\.txt|Uploads|Public)(.*)[        DISCUZ_CODE_5        ]nbsp; /index.php?s=$1  last;
  3.     break;
  4. }
复制代码

备注:排除 index.php,robots.txt.Uploads,Public 文件和目录。


申明:本技术帖来源科护科技,版权所有侵权必究,转载请注明出处和保留原文链接 http://www.hfkehu.cn/thread-7294-1-1.html

回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
快速回复 返回顶部 返回列表