将多个301规则合并为一个mod_rewrite规则

时间:2019-05-14 11:17:34

标签: wordpress mod-rewrite url-redirection

我更改了网站的url结构,并希望应用以下重定向规则:

1)将http,http + www,https重定向到https + www。

2)如果页面的标签更改了,我想进行特定的重定向:domain.fr/old-slug重定向到domain.fr/new-slug

Wordpress网站安装在NNGINX + Apache2 Hybrid服务器上

我已将其添加到我的.htaccess文件中,以重定向到https://www扩展名:

 RewriteEngine On
 RewriteCond %{HTTP:X-Forwarded-Proto} !https
 RewriteRule ^(.*)$ https://www.domain.fr/$1 [R=301,L]

此重写规则按预期运行。

但是当我添加用于重定向特定页面的特定规则时,如下所示:

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https

#specific Redirects
RewriteRule ^old-slug/?$ https://www.domain.fr/new-slug/? 
[R=301,NE,NC,L]

#redirect to https://www
RewriteRule ^(.*)$ https://www.domain.fr/$1 [R=301,L]

在浏览器中打开网站时出现以下错误:ERR_TOO_MANY_REDIRECTS

因此,以下代码目前正在运行:

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://www.domain.fr/$1 [R=301,L]

# 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

我想在指令中找到问题,以便为特定的url进行适当的重定向

0 个答案:

没有答案