修改.htaccess实现301重定向的几种例子

本文详细介绍了如何通过配置.htaccess文件来实现域名重定向,包括将lituanmin.com重定向到www.lituanmin.com,以及处理其他旧域名如oldlituanmin.com到新目标域名www.newlituanmin.com的重定向,同时提供了针对不同场景的实践指南,以优化网站SEO并提升用户体验。
重定向旨在使域名唯一,是网站SEO必须要做的,重定向www.lituanmin.com到 lituanmin.com也是出于同样的原因,只是形式不同。
打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,子域名要修改)

1.重定向lituanmin.com到 www.lituanmin.com
    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^lituanmin.com [NC]
    RewriteRule ^(.*)$ http://www.lituanmin.com/$1 [L,R=301]

2.重定向www.lituanmin.com到lituanmin.com
    
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !lituanmin.com$ [NC] 
    RewriteRule ^(.*)$ http://lituanmin.com/$1 [L,R=301]

3.重定向oldlituanmin.com到www.newlituanmin.com
      
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !oldlituanmin.com$ [NC]
    RewriteRule ^(.*)$ http://www.newlituanmin.com/$1 [L,R=301]

4.重定向 oldlituanmin.com to newlituanmin.com
      
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} !oldlituanmin.com$ [NC]
    RewriteRule ^(.*)$ http://newlituanmin.com/$1 [L,R=301]

5.重定向lituanmin.com/file/file.php 到 otherlituanmin.com/otherfile/other.php
    
    RewriteCond %{HTTP_HOST} ^www.lituanmin.com$
    RewriteRule ^file/file.php$ http://www.otherlituanmin.com/otherfile/other.php [R=301,L]

### 宝塔面板 CRMEB 安装后无限重定向的原因分析 宝塔面板安装 CRMEB 后出现的无限重定向问题通常是由以下几个原因引起的: 1. **伪静态规则未正确配置** 如果服务器上的伪静态规则未能匹配到 CRMEB 的需求,则可能导致页面无法正常加载并进入循环跳转状态。 2. **HTTPS 配置错误** 当网站启用了 HTTPS 协议,而部分资源仍然通过 HTTP 加载时,浏览器可能会强制刷新页面以尝试重新获取安全连接的内容。这种情况下容易引发无限重定向现象[^1]。 3. **环境变量设置不当** PHP 环境中的 `$_SERVER['HTTP_HOST']` 或其他相关参数可能被修改或覆盖,从而影响框架内部逻辑判断地址合法性的方式。 4. **缓存机制冲突** 若存在前端 CDN 缓存或者本地文件系统缓存插件干扰请求流程的话也有可能造成此类状况发生。 针对以上几种可能性下面给出具体解决方案如下所示: --- ### 解决方案一:调整 Nginx/Apache 伪静态规则 对于基于 Apache 和 Nginx 不同类型的 Web Server 下面分别提供对应的修正方式: #### 对于Apache用户 编辑站点根目录下的 `.htaccess` 文件内容应类似于这样: ```apacheconf <IfModule mod_rewrite.c> RewriteEngine On Options +FollowSymlinks -Multiviews RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [QSA,L] </IfModule> ``` #### 对于Nginx用户 前往宝塔面板 -> 网站管理界面找到对应域名点击【设置】按钮,在弹窗里切换至“伪静态”,输入以下代码保存即可生效。 ```nginx location / { try_files $uri $uri/ /index.php?$query_string; } if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; } ``` --- ### 解决方案二:确认 SSL 设置一致性 如果当前项目已经部署了SSL证书,请务必保证所有链接均采用统一协议形式访问(即全部走https://)。可以通过在公共控制器基类里面加入一段检测函数实现自动转换功能样例如下: ```php public function __construct(){ parent::__construct(); // 强制开启 https 请求 if(strpos(config('app.url'),'http://') !== false && config('app.debug')==false ){ header("Location:".str_replace("http","https",config('app.url'))."/".$_SERVER["REQUEST_URI"]); exit(); } } ``` 另外还需要注意的是某些特殊场景比如微信小程序接口调用也可能因为跨域资源共享(CORS)策略限制而导致相似表现所以建议同步排查是否存在类似隐患。 --- ### 解决方案三:优化PHP运行环境 考虑到CRMEB依赖ThinkPHP开发而成因此有必要核查一下实际使用的版本号以及扩展支持情况确保满足官方文档最低要求之外再额外增加几项常用选项如GD库imagick组件memcache/memcachedredis等等这些都会间接提升整体性能减少潜在风险因素。 同时记得按照之前提到过的思路把Wordpress升级过程中涉及的相关权限设定移植过来应用于此处同样有效果显著的例子就是将wordpress后台直接写入操作替换成了命令行执行更加稳定可靠的形式呈现出来便于后续维护工作开展顺利推进下去不会轻易出现问题反复折腾浪费时间精力成本太高得不偿失啊朋友们! --- ### 结论总结 综上所述通过对上述三个方面逐一排查定位根本诱因之后采取针对性措施加以改进基本上就能够彻底杜绝该种异常情形再次重现啦希望对你有所帮助哦😊
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值