Apache2,当您访问具有确切名称的文件夹时重定向到主页

Apache2,当您访问具有确切名称的文件夹时重定向到主页

问题

在 apache 中,如果您要转到精确的字符串,我该如何重定向到主页,但该字符串后面的所有内容都应正常显示,无需重定向。

例子。

http://example.com/STRING -> go to homepage
http://example.com/STRING_PAGE -> go to http://example.com/STRING_PAGE

我试过

Redirect 301 /STRING http://example.com/

但在这种情况下,页面也会重定向到主页,例如 的情况http://example.com/STRING_PAGE

谢谢。

答案1

而不是使用mod_alias和它的重定向指令,您可以使用mod_rewrite使用RewriteRule带有RewriteCond

RewriteEngine On
RewriteCond %{REQUEST_URI}  !^/STRING_PAGE [NC]
RewriteRule ^/?STRING       / [R=301,NC,L]

这会重定向所有以/STRING或开头STRING但不以 开头的请求。如果规则是在上下文中定义的,则需要/STRING_PAGE匹配前导斜杠,而在或上下文中则必须省略。将其设为可选会更易于使用,因此规则可以在两者中都使用。^/VirtualHost<Directory/>.htaccess/?

数控标志用于不区分大小写的匹配,并且大号停止处理任何后续规则。

您需要启用mod_rewritesudo a2enmod rewrite)才能使用此功能。

相关内容