对于一个项目,我转换了一个旧的WordPress环境到一个非WordPress环境,我需要一个特定的WordPress页面的重定向。
例如:
旧的(WordPress页面)
https://www.example.com/news/
新建(非WordPress页面):
https://www.example.com/shop-news.php
但是,/news/
文件夹中的页面已经使用Redirect 301解析。
Redirect 301 /newsitem1/ https://www.example.com/news/2020/newsitem1.php
Redirect 301 /newsitem2/ https://www.example.com/news/2021/newsitem2.php
Redirect 301 /newsitem3/ https://www.example.com/news/2021/newsitem3.php
Etc..
名称/news/
也出现在新环境中,因此我必须防止重定向规则也更改新URL。
如何在.htaccess
中最好地解决这个问题?我已经尝试了一些正则表达式,但我无法解决。
我已经尝试了几种RewriteCond
和RewriteRule
的方法,特别是沿着下面的方法:RewriteRule ^news/[some Regex expressions to indicate that it should be 'empty' after the /] shop-news.php [R=301,L]
1条答案
按热度按时间csga3l581#
要只重定向
/news/
,您需要将以下mod_rewrite指令放在.htaccess
文件的 * 顶部 *,WordPress代码块 * 之前 *,即# BEGIN WordPress
部分 * 之前 *(指令的顺序很重要)。$
是字符串结尾锚,指示URL路径的结尾。还要注意 substitution 字符串上的
/
(斜杠)前缀。如果没有斜杠前缀,这个规则依赖于RewriteBase
指令(通常在文件后面的WordPress代码块中定义)。但是,外部重定向应该很少依赖于RewriteBase
指令。您不需要重复
RewriteEngine On
指令,该指令稍后出现在文件中(在WordPress代码块中)。