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

mm5n2pyu  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(223)

我不是一个程序员的.htaccess代码,我读了其他相关的职位,但不理解他们。没有他们做我需要的。
我有一个运行在http://example.com/main上的WordPress站点,但想将http://example.com重定向到http://otherexample.com/page.php。还需要http://example.com/anyfile不被重定向。

atmip9wb

atmip9wb1#

假设example.comotherexample.com指向不同的位置,然后在example.com的根.htaccess文件中尝试以下内容:

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

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

  • ^声明字符串开始(即URL路径)
  • /与文字斜杠匹配
  • $Assert字符串结尾
    **更新:**我发现secondary.com也被重定向了。

如果您有多个域指向同一个位置,而您只想重定向其中一个,那么您需要在重定向之前使用mod_rewrite首先检查主机名。
例如,下面的代码需要放在.htaccess文件的顶部WordPress前端控制器之前:

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

请注意,RewriteRule * 模式 * 匹配的URL路径减去斜杠前缀,因此正则表达式^$(不同于RedirectMatch指令),它匹配一个 * 空 * URL路径(即仅根目录)。

相关问题