RewriteRule 301重定向整个目录和子目录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RewriteRule 301重定向整个目录和子目录相关的知识,希望对你有一定的参考价值。
我真的需要你的帮助......
我只是想将目录中的所有内容重定向到另一个目录。当我读到它时它看起来很简单,但在现实生活中,它不起作用......这是我现在的整个.htaccess文件:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# Redirect all to HTTPS
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.org/$1 [R]
# End redirect
#301 REDIRECTS
Options +FollowSymLinks
RewriteRule ^mydir/(.*)$ /mydir-and-more/$1 [R=301,NC,L]
- 首先,有Wordpress的东西在不乱。
- 然后,我从某个站点复制/粘贴的代码将http重定向到https。它运作良好。请注意,我从列表中删除了“L”参数,以确保我的下一个规则可行。
- 来之后我正在努力奋斗。
所以,它真的就是这样。我的新目录以与旧目录相同的单词开头。我从那里复制了这一行:https://coolestguidesontheplanet.com/redirecting-a-web-folder-directory-to-another-in-htaccess/
在Apache网站(https://httpd.apache.org/docs/current/mod/mod_rewrite.html)上,它说我应该在^和mydir之间使用/。尝试过,没用。
我尝试在文件顶部移动Options + FollowSymLinks。没有。
当我使用这样的东西时:
RedirectMatch 301 ^/mydir/ https://example.org/mydir-and-more/
这有效。但只移动精确/ mydir /地址。它不会移动整个目录。此外,如果我输入没有最后一个/的https://example.org/mydir,它将无法正常工作。如果我在重定向匹配中添加/,它不再起作用,因为它是相同的单词!
所以,我在这里,完全糊涂了!请问,有专家建议吗?谢谢!!
您需要在wordpress定义之前移动规则。实际上,如果您尝试访问您的站点,则重写规则详细说明将停止
RewriteRule . /index.php [L]
该指令意味着“管理尚未由上限规则管理的所有路径并停止详细说明([L]代表最后一个)”。
您可以安全地将规则放在wordpress上面,在ifmodule中更好
<IfModule mod_rewrite.c>
RewriteRule ^/mydir/(.*)$ /mydir-and-more/$1 [R=301,NC,L]
</IfModule>
# BEGIN WordPress
最有趣的是,我通过鬼混来解决我的问题!我真的不需要RewriteRule,所有我需要写的而不是RewriteRule就是这样:
Redirect 301 /mydir https://example.org/mydir-and-more
我甚至不需要Options + FollowSymLinks。
以上是关于RewriteRule 301重定向整个目录和子目录的主要内容,如果未能解决你的问题,请参考以下文章