Apache .htaccess如果搜索词前面有字符串,则重定向

Apache .htaccess如果搜索词前面有字符串,则重定向,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我需要帮助创建一些.htaccess规则。目前我有: RewriteEngine On Redirect 404 /favicon.ico #Check if request was made for RSS feed RewriteCond %{REQUEST_URI} ^(.+)/events($|/) [NC,OR] RewriteCond %{REQUEST_URI} ^(.+)/tickers($|/) [NC] RewriteRule ^(.*)$ rss.php/?$1 [L]

我需要帮助创建一些
.htaccess
规则。目前我有:

RewriteEngine On

Redirect 404 /favicon.ico

#Check if request was made for RSS feed
RewriteCond %{REQUEST_URI} ^(.+)/events($|/) [NC,OR]
RewriteCond %{REQUEST_URI} ^(.+)/tickers($|/) [NC]
RewriteRule ^(.*)$ rss.php/?$1 [L]
我需要的是:

  • 如果URL类似于:domain.com/events/,请不要重定向
  • 如果URL类似于:domain.com/[anything]/events/,请执行内部重定向
  • 事件
    也可以是
    标记

您可以尝试在结尾添加一个条件来重写/events/to/events/并查看它是否会覆盖上一个匹配。

您可以尝试在结尾添加一个条件来重写/events/to/events/并查看它是否会覆盖上一个匹配。

而不是查询
请求URI
,这应该在
重写规则
本身中处理。它实际上是一个非常简单的匹配模式,建议使用
[^/]+
将第一个
/
之前的所有字符捕获到
$1
中。如果该组不存在,则不会进行重写。要在第一个
/
之后允许
事件或
标记
,请使用
(事件标记)

无需匹配
$
或尾随斜杠,因为在重写的URL中未使用它们。如果确实需要匹配它,以便在URL为
/something/events/somethingelse
时不重写,只需使用
/?$
作为可选的尾部斜杠和字符串结尾

RewriteRule ^([^/]+)/(events|tickers)/?$ rss.php/?$1 [L,NC]

与其查询
REQUEST\u URI
,不如在
RewriteRule
本身中进行处理。它实际上是一个非常简单的匹配模式,建议使用
[^/]+
将第一个
/
之前的所有字符捕获到
$1
中。如果该组不存在,则不会进行重写。要在第一个
/
之后允许
事件或
标记
,请使用
(事件标记)

无需匹配
$
或尾随斜杠,因为在重写的URL中未使用它们。如果确实需要匹配它,以便在URL为
/something/events/somethingelse
时不重写,只需使用
/?$
作为可选的尾部斜杠和字符串结尾

RewriteRule ^([^/]+)/(events|tickers)/?$ rss.php/?$1 [L,NC]
稍微修改一下(我忘了提到我还需要捕获
事件| tickers
),您的解决方案就成功了。谢谢。稍微修改一下(我忘了提到我还需要捕获
事件| tickers
),您的解决方案就成功了。非常感谢。