.htaccess仅将子文件夹的根目录重定向到另一个子文件夹?

时间:2019-11-02 08:43:08

标签: .htaccess redirect

我在“ example.com/a”中有一个网站,想将301仅将“ example.com/a”的网址重定向到“ example.com/b”,而“ example.com/a”中的其他数据则不要更改地址。

在“ example.com/a”中创建.htaccess,然后尝试使用以下代码:

RewriteEngine on
RewriteRule ^$ http://www.example.com/b [R=301,L]

RedirectMatch 301 ^/$ https://example.com/b

及其重定向根目录,但“ example.com/a”中的所有其他数据均显示404错误。

我在“ root / a”中有很多照片,只想将“ root / a”地址重定向到“ root / b”,并且照片地址保持不变。

例如,重定向前后,“ root / a / pic.jpg”地址将保持不变

我该如何重定向“ example.com/a”而其他旧地址保持不变?

1 个答案:

答案 0 :(得分:1)

如果我对您的理解很好,那么您需要将root/a重定向到root/b,同时保持其余页面,文件的位置吗?

这可以做到:

# Redirect Root Only
<IfModule mod_rewrite.c>
RewriteEngine On

#Uncheck line below to redirect 'index.php' as well
#Redirect 301 /a/index.php http://example.com/b/

#Redirect root only
RewriteCond %{HTTP_HOST} example\.com [NC]
RewriteCond %{REQUEST_URI} ^/a/$
Rewriterule ^(.*)$ http://example.com/b/ [L,R=301]
</IfModule>

# END Redirect Root Only

是否也需要重定向index.php,index.html或其他索引页面?取消选中上面代码中的行。由于%{REQUEST_URI} ^/a/$排除了所有直接文件路径,包括 /a/index.html、index.php、index.py等。