我假设您想在内部重写URL,而不是在外部重定向请求。。。
重写要删除的图像URL路径/sites/25
对于espanol
然后在.htaccess
WordPress前端控制器之前的文件:
RewriteCond %{HTTP_HOST} ^espanol\\.
RewriteRule ^(wp-content/uploads)/sites/25/(\\d{4}/\\d\\d/[\\w-]+\\.jpg)$ /$1/$2 [L]
以下内容
/sites/25/
, 假设源URL路径的形式为4位、斜杠、2位、斜杠和任意数量的单词(
\\w
) 包括连字符,然后
.jpg
. (
\\w
是的速记字符类
a-z
,
A-Z
,
0-9
和
_
.)
UPDATE: 我还需要在重写期间删除“espanol”子域。
你不能用简单的重写来做到这一点。无法跨主机重写URL。您需要将服务器配置为反向代理,并使用mod\\u代理代理请求。或者将其实现为外部重定向。
例如,作为外部重定向:
RewriteCond %{HTTP_HOST} ^espanol\\.(.+) [NC]
RewriteRule ^(wp-content/uploads)/sites/25/(\\d{4}/\\d\\d/[\\w-]+\\.jpg)$ https://%1/$1/$2 [R=302,L]
这确实假设您没有共享同一“espanol”子域的其他域。
这个%1
反向参考(注意%
前缀)中的RewriteRule
替换保留主机名减去espanol.
前缀
将302(临时)更改为301(永久)-如果这是您的意图-只有在您测试了它是否适合您之后。浏览器会持久缓存301s,因此可能会导致测试出现问题。