1

我需要帮助来制定一些.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也可以tickers
4

2 回答 2

1

而不是查询REQUEST_URI,这应该在RewriteRule本身中处理。它实际上是一个相当简单的匹配模式,建议用于[^/]+捕获直到第一个/进入的所有字符$1。如果该组不存在,则不会进行重写。要允许第一个eventstickers在第一个之后/,请使用(events|tickers).

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

没有必要匹配$斜杠或斜杠,因为您没有在重写的 URL 中使用它们。如果您确实需要匹配它,这样您就不会在 URL 为 时重写/something/events/somethingelse,只需使用/?$可选的尾部斜杠和字符串的结尾。

RewriteRule ^([^/]+)/(events|tickers)/?$ rss.php/?$1 [L,NC]
于 2013-05-20T20:57:07.100 回答
0

您可以尝试在末尾添加一个条件以将 /events/ 重写为 /events/ 并查看它是否会覆盖先前的匹配。

于 2013-05-20T20:56:47.810 回答