Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >前端控制器和`301永久迁移的Apache ModRewrite规则`

前端控制器和`301永久迁移的Apache ModRewrite规则`
EN

Stack Overflow用户
提问于 2020-11-04 23:17:16
回答 1查看 17关注 0票数 0

我现在正在做的事情

我正在为一个客户开发一个后端。

之前,他将网站数据与下载的文件混合在一起,供朋友或其他目的下载。

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/public
    /somedir
        somesubdirfile
    anotherfile1
    anotherfile2
    foobar.html
    index.html

现在,我实现了通用重写规则,将所有请求代理到网站的新index.php

.htaccess

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<IfModule mod_rewrite.c>
    RewriteEngine "On"

    RewriteCond "%{REQUEST_FILENAME}" ".htaccess"
    RewriteCond "%{REQUEST_FILENAME}" ".htpasswd"
    RewriteCond "%{REQUEST_FILENAME}" "!-s"
    RewriteCond "%{REQUEST_FILENAME}" "!-l"
    RewriteCond "%{REQUEST_FILENAME}" "!-d"
    RewriteRule "^.*$" "public/index.php" [NC,L]
</IfModule>

很好,行得通。

现在我把所有的杂物都移到了一个单独的文件夹中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/resources
    /somedir
        somesubdirfile
    anotherfile1
    anotherfile2
    foobar.html
/public
    index.php

我需要满足的需求

..。就是改变重写规则。

如果请求与/public中的特定文件或符号链接不匹配,则必须测试它是否与/resources中的特定文件或符号链接匹配。如果匹配,则必须发送301 Moved Permanently,并将请求重定向到/resources。如果没有匹配,则必须重定向到public/index.php

但我真的坚持理解如何像我所要求的那样在复杂的情况下编写适当的重写规则。

我需要一些帮助,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-11-05 06:17:11

您可以在站点根.htaccess中尝试以下规则:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RewriteEngine On

# if it exists in /resources then redirect
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/resources/$0 -f
RewriteRule .+ /resources/$0 [L,NE,R=301]

# else route to public/index.php
RewriteCond %{REQUEST_URI} \.(htaccess|htpasswd) [NC]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ public/index.php [L]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64689043

复制
相关文章
教程:301永久重定向实操方法
我重点讲讲这个网址规范化,因为这是大家很容易忽略的问题。例如我的域名,如果不做任何设置,它默认会产生四个网址:
用户9229846
2021/11/26
4.7K0
教程:301永久重定向实操方法
详解301永久重定向实现方法 转
我重点讲讲这个网址规范化,因为这是大家很容易忽略的问题。例如我的域名,如果不做任何设置,它默认会产生四个网址:
wuweixiang
2018/12/04
4.7K0
详解301永久重定向实现方法
                                                                            转
typecho开启永久链接及旧链接301跳转
刚看到@风也温柔关于typecho永久链接的文章,也想给自己博客的链接结构修改一下,变得更简洁一点。 感谢@风也温柔大佬提出的解决方案。 本文章部分内容来自:https://eas1.cn/167.html 本文章讲解将链接结构从https://blog.zeruns.tech/index.php/archives/{cid}/修改为https://blog.zeruns.tech/archives/{cid}.html,其他链接结构修改方法可参考上面的链接,@风也温柔的文章没有讲这种链接结构的修改方法,我就补充一下。
zeruns
2020/04/07
1.1K0
apache 301重定向和禁止访问指定后缀文件
#301重定向 RewriteEngine on RewriteCond %{HTTP_HOST} www.phpfs.com$ [NC] RewriteRule ^(.*)$ http://blog.phpfs.com/$1 [L,R=301] #禁止访问.pem和.log后缀的文件 Order allow,deny Deny from all Deny From All
苦咖啡
2018/04/28
1.5K0
ThinkPHP Apache和Nginx伪静态规则整理
老蒋最近有接触到ThinkPHP框架,对于这个框架之前有听说应该还是相当有知名度的,但是自己也用不上就没有去了解。最近技术有开发的项目用的是ThinkPHP,我在部署的时候告诉我用Apache,但是我一般公司部署的WEB环境都是Nginx,然后搜索文档看到还是有Apache和Nginx伪静态规则支持的。
老蒋
2021/12/27
4.7K0
Apache重载规则详解[一]
1、先写个简单的重载规则(具体环境配置参考 http://www.0377joyous.com/archives/109.html) 2、在网站目录(我在网站根目录下做测试)下建立htaccess文
苦咖啡
2018/05/07
1.1K0
Apache URL重写规则
  Apached的重写功能,即是mod_rewrite模块功能,它是apache的一个模块。它的功能非常强大,可以操作URL中的所有部分。
那一叶随风
2018/08/22
3K0
Apache URL重写规则
Laravel旧域名永久301跳转方法【带旧参数】
有一个旧域名xxxx.misiyu.cn 是以前临时用的,然后目前启用正式域名了,想要把旧域名(xxxx.misiyu.cn )跳转到正式域名,并且是要附带域名后面的参数。
无道
2019/11/13
2.7K0
Apache规则RewriteCond详解
Apache中 RewriteCond语句对于我来说一直是个难点,多次试图去把它搞明白,都没有结构,这次我终于算大概知道它的意思了。
全栈程序员站长
2022/07/01
7900
Apache重载规则详解[二]
续:Apache重载规则详解[一] 要求2: 很多模板技术mvc中总有index.php(显示在地址栏,看着很不友好,这个怎么重载?) 比如: http://www.0377joyous.com/index.php/list/23/ 重载过后显示 http://www.0377joyous.com/list/23/更利于搜索引擎收录 规则可以这样写(这个是TP上的规则) RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENA
苦咖啡
2018/05/07
1.1K0
从 Apache Kudu 迁移到 Apache Hudi
在构建本地数据中心的时候,出于Apache Kudu良好的性能和兼备OLTP和OLAP的特性,以及对Impala SQL和Spark的支持,很多用户会选择Impala / Spark + Kudu的技术栈。但是由于Kudu对本地存储的依赖,导致无法支持的数据高可用和弹性扩缩容,以及社区的逐渐不活跃,越来越多的用户,开始迁移到云上的Trino / Spark + Hudi 技术栈,本文通过一个实际的例子,来看一下迁移过程中发生的代码的重构和数据的迁移。
ApacheHudi
2022/12/09
2.2K0
从 Apache Kudu 迁移到 Apache Hudi
CodeIgniter框架Apache和Nginx伪静态规则记录
这几天一直在纠结CodeIgniter框架的问题,一个项目是用到CodeIgniter框架配置的,但是由于之前运维人员跑路且数据也丢失,无奈我来帮助恢复N月之前也不知道是不是备份完整的数据。作为应该是比较知名的PHP框架之一CodeIgniter,虽然老蒋以前都没有听说过,但是这几天查阅资料发现用户还是非常多的。
老蒋
2021/12/27
1.9K0
编写数据迁移的14个规则
在软件项目的生命周期中,我们不时需要执行重大更改,这可能会迫使我们修改数据库以适应我们的新行为。
February
2018/12/05
2.2K0
zblogphp伪静态规则+301重定向Nginx写法
最近一直在频繁的更换主机,不为别的只为便宜,毕竟小站长一枚,没有辣么多的money,但是更换腾讯云Nginx主机的时候发现无法将301重定向跟伪静态组合在一起,因为Nginx主机伪静态的规则里面通用字符是用1表示的而Nginx301重定向尾部参数也是用1表示,这样以来没办法实现 http://www.liyangblog.cn/blog/138.html 跳转到 https://www.talklee.com/blog/138.html  只能重定向到首页,所以网上的教程一般是无效的,然后只能自己琢磨了。
李洋博客
2021/06/15
2.3K0
zblogphp伪静态规则+301重定向Nginx写法
Typecho Apache伪静态规则
今天弄了个新域名 www.mysql.cool 可不能闲置,弄了个中国香港机子装了个Apache,继续我的Typecho之路,我在Typecho后台设置永久链接,开启url地址重写rewrite功能后,发现文章打不开了
qiangzai
2021/12/21
1.6K0
Typecho Apache伪静态规则
网站设置301跳转的必要性是什么?
在网站运营过程中,经常会遇到需要更改网页URL或整体迁移网站的情况。为了保持用户体验和搜索引擎优化(SEO),我们需要正确设置301跳转。本文将介绍301跳转的概念、必要性以及如何设置301跳转。
海拥
2023/06/27
5490
网站设置301跳转的必要性是什么?
利于SEO的nginx服务器301重定向规则
多个域名绑定到一个网站,发现每个网站都不同啊,还得重定向,。有两种实现方法,第一种方法是判断nginx核心变量host(老版本是http_host): [cc lang="php"] server { server_name www.hangkin.net hangkin.net ; if ($host != 'www.hangkin.net' ) { rewrite ^/(.*)$ http://www.hangkin.net/$1 permanent; } ... } [/cc] 第二种方法: [cc lang="php"] server { server_name hangkin.net; rewrite ^/(.*) http://www.hangkin.net/$1 permanent; } [/cc] 我用的是第一种方法,这两种方法中, permanent是关键,详细说明见nginx重定
zhaoJian.Net
2023/02/24
1K0
Apache 中RewriteRule 规则参数[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。[size=medium] Apache 中RewriteRule 规则参数 Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依赖于各种测试,比如服务器变量、环境变量、HTTP头、时间标记,甚至各种格式的用于匹配URL组成部分的查找数据库。
全栈程序员站长
2022/08/28
3.5K0
IIS服务器下做301永久重定向设置方法[可以传参][图文]
以前也没怎么关注301重定向,第一因为没有网站要重定向,第二对于不带www的域名我都是用的转发到带www的域名。不过一场风波之后,很多服务商已经不提供转发服务了,虽说易名现在还可以享用到免费的转发服务,但是却不能不带www的转发到带www的同时进行MX记录解析,这对于需要MX解析的朋友也是一大烦恼。
习惯说一说
2019/07/04
5.2K0
IIS服务器下做301永久重定向设置方法[可以传参][图文]
网站改版与301永久重定向 加快百度收录
即使再完善的网站,上线后也会因为各种原因,进行或大或小的改版,这时我们就可以利用301永久重定向来高速搜索引擎,我的网站内容搬家了。
德顺
2023/08/24
5800
网站改版与301永久重定向 加快百度收录

相似问题

modRewrite问题和modRewrite规则

14

我的301 htaccess modrewrite规则有什么问题?

10

Eureka on Cloudfoundry RestTemplate永久迁移301

126

.htaccess 301永久重定向规则

10

Apache Modrewrite & 301重定向-带字符的动态URL

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文