我无法计算我们的RewriteRule,所以我尝试过RedirectMatch。我需要匹配文件夹/2018/
和所有其他子文件夹,但我不想重定向/2018/speakers/
或/2018/events/
RedirectMatch 301 ^/2018/$^(speakers|events)($|/) https://example.com/north-america
似乎没有用,我真的无法弄清楚如何在包含后排除。谢谢你的帮助!
如果必须是重写规则,这里是顶部的其余部分。我需要像2017年,2016年等多年这样做,所以也许这是最好的方法。
# Force https
RewriteCond %{HTTP:X-Pagely-SSL} off
RewriteRule ^(.*)$ https://example.org/$1 [R=301,L]
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
答案 0 :(得分:0)
您可以使用RewriteCond
排除某些网址
RewriteCond %{REQUEST_URI} !^/2018/(speakers|events)
RewriteRule ^/?2018/(.+) https://example.com/north-america/$1 [R=301,QSA,L]
第1行:如果请求uri未以/2018/speakers
或/2018/events
第2行:如果请求uri以/2018/
开头,则会永久重定向到https://example.com/north-america/
。 $1
是(.+)
的反向引用。