我正在努力
- 将站点从
a.example
重定向到b.example
- 文件夹
a.example/c/
不得重定向 - 必须将
a.example/test.php
重定向到a.example/c/test.php
我尝试这个.htaccess
:
RewriteEngine on
RewriteRule !^c($|/) https://b.example/ [L,R=301]
Redirect 301 /test.php https://www.a.example/c/test.php
但第二个301重定向没有重定向
1条答案
按热度按时间dsekswqp1#
第一个mod_rewrite
RewriteRule
指令将不以blog
开头的 * 所有内容 * 重定向到b.example
。这自然也将重定向/test.php
。更改这些规则的顺序不会有任何影响,因为Redirect
是mod_alias指令,无论指令的顺序如何,都将在后面处理1。(1之前在“LiteSpeed”上,与Apache相反。)您需要执行类似于下面的操作,在整个过程中使用mod_rewrite并颠倒两个规则的顺序:
这是假设第二个网域(
b.example
)指向不同的服务器。第一个规则中 substitution 字符串中的
$0
反向引用包含与RewriteRule
pattern 匹配的完整URL路径,即本例中的test.php
(节省重复)。首先使用302(临时)重定向进行测试,以避免潜在的缓存问题。在测试之前,您需要清除浏览器缓存。