htaccess 301仅重定向根目录,但排除所有文件和子文件夹(有例外)



我不是.htaccess代码的程序员,我读过其他相关的帖子,但不理解。他们中没有一个人做我需要的事。

我有一个在http://example.com/main上运行的Wordpress网站,但希望将http://example.com重定向到http://otherexample.com/page.php。还需要不重定向http://example.com/anyfile

假设example.comotherexample.com指向不同的位置,则在example.com的根.htaccess文件中尝试以下操作:

RedirectMatch 302 ^/$ http://otherexample.com/page.php

正则表达式^/$仅与/匹配,即根目录。

  • ^断言字符串的开头(即URL路径(
  • /与文字斜杠匹配
  • $断言字符串的末尾

更新:我发现secondary.com也被重定向了。

如果有多个域指向同一个位置,并且只想重定向其中一个域,则在重定向之前需要先使用mod_rewrite检查主机名。

例如,以下内容需要位于WordPress前端控制器之前的.htaccess文件的顶部:

RewriteCond %{HTTP_HOST} ^(www.)?example.com [NC]
RewriteRule ^$ http://otherexample.com/page.php [R=302,L]

请注意,RewriteRule模式与减去斜杠前缀的URL路径匹配,因此regex^$(与RedirectMatch指令不同(与URL路径匹配(即仅根目录(。

最新更新