首页 > 解决方案 > 如何正确地将多个条件添加到 .htaccess 重定向?

问题描述

我有一个新闻聚合网站,目前我正在尝试为一些顶级城市设置 Twitter 帐户。为了使这些机器人自动化,我正在使用 RSS 提要。为了生成每小时没有 100 条帖子的 RSS 提要,我必须创建另一个抓取更少新闻的服务器。它是一个 wordpress 网站,因此默认情况下,他们在每个 slug 末尾都有 rss 提要(例如:fakesite.com/feed 或 fakesite.com/usa/dallas/feed)。我创建了一个重定向,通过引用所有帖子所在的子目录,将人们从这个较小的服务器发送到较大的服务器。问题是提要 url 也被转发到我试图避免发推文的那个。有没有办法可以添加一个条件,如果 slug 以“/feed”结尾,则告诉服务器不要重定向?

到目前为止,我的 .htaccess 文件中有这段代码:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/us/
RewriteRule (.*) https://urlocal.news/$1 [R=301,L]

我所有的帖子都在 /us/ 子目录下,但提要也是如此。

RewriteEngine On

RewriteCond %{REQUEST_URI} ^/us/    
RewriteCond %{REQUEST_URI} !^/feed    
RewriteRule (.*) https://urlocal.news/$1 [R=301,L]

它什么也没做。TBH 我不知道我应该使用什么语法。我正在安装 Bitnami wordpress 并且他们以一种令人困惑的方式设置它。我把这个放在我的htaccess.conf.

标签: regex.htaccess

解决方案


您可以$在最后使用匹配。

RewriteEngine On

RewriteCond %{REQUEST_URI} ^/us/
RewriteCond %{REQUEST_URI} !/feed$
RewriteRule (.*) https://urlocal.news/$1 [R=301,L]

推荐阅读