.htaccess - Wordpress 302 通过 htaccess 临时重定向
问题描述
我需要临时移动我的站点目录,以便可以在域根目录中放入登录页面。登录页面将位于子域并指向根域(通过 DNS)。
我正在尝试通过 htaccess 进行简单的 302 重定向,以将站点的目录从https://example.com/更改为https://example.com/home/,但我陷入了一个循环。当我加载网站时,我永远得到这个......
https://example.com/home/home/home/home/home/home/
任何想法如何让它发挥作用?
Redirect 302 / https://example.com/home/
# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
解决方案
mod_aliasRedirect
指令是前缀匹配的,匹配后的所有内容都被复制到目标 URL 的末尾。因此,相同的指令将重定向/home/
(匹配/
)到/home/home/
(home/
附加在目标上)等等。
由于您已经在 WordPress 代码块中使用了 mod_rewrite,因此您也应该在此处使用 mod_rewrite 以避免潜在的冲突。mod_rewrite 总是在 mod_alias 之前执行,无论.htaccess
.
例如,到 302 仅重定向根目录,然后使用以下命令:
RewriteRule ^$ /home/ [R,L]
显然,当您在根目录中实现替代登录页面时,需要删除此重定向。
登录页面将位于子域并指向根域(通过 DNS)。
但是,如果您通过“子域”(如评论中的建议)实现此“登录页面”,那么我不确定您为什么需要移动现有主页,因为它存在于不同的主机名上。(?)
但是在子域(可能指向主域文档根目录)上实施新的登录页面将创建一个非常脱节的站点。子域和主域是两个不同的站点。
如果您想在 WordPress 之外(在同一个域上)创建一个新的登录页面(替换旧主页),那么我看不到如何从旧主页实现“重定向”,/home/
因为这自然会重定向新的登陆页面 - 除非这只是您所说的“临时”,直到实施新的登陆页面?
据我所知,您需要:
/home/
使用主页的现有内容创建一个新的 WP 页面。(现有的 WP 主页将无法访问。)在单独的子目录(在 URL 中不可见)中创建新的登录页面 -
/new-landing-page.php
如果这是一个相对简单的页面,则可能只是一个单独的文件(例如 )。在内部将来自文档根目录(否则会显示 WP 主页)的请求重写到新登录页面,并防止请求通过 WordPress 路由。
例如:
# Rewrite requests for the homepage to the new landing page. RewriteRule ^$ new-site/new-landing-page.php [L]
何时
example.com/
提供请求example.com/new-site/new-landing-page.php
(无重定向)。WP被绕过。但是/<something>
以通常的方式通过 WP 路由。
推荐阅读
- python - plotnine/ggplot - 改变图例位置
- docker - 如何启动具有主机名和 IP 地址的容器,以便它们连续运行?
- bash - 使用输入从文件运行 bash 脚本
- sql-server - 使用两个连接到同一个表的慢速执行 T-SQL 查询
- url - 从 Google 表格中复制的文本中提取 URL
- sql - 以 5 年为增量获得多个计数
- ruby-on-rails - 服务器重新启动,网站给出 502 Bad Gateway
- powershell - 为变量转义 Powershell 中的所有密码特殊字符
- react-native - React Native - 如何检查 URL 是否为有效图像
- javascript - 使用 match() 进行正则表达式反应应用程序出错