更改WordPress路由以加载不同URL的相同页面

时间:2016-09-06 作者:Ido Schacham

我正在将现有网站转换为WordPress主题。其中一个页面是使用JS的库history.pushState 创建用于加载特定图像的唯一URL。

E、 g.页面URL(非WP网站):http://www.good-deeds-day.org/gallery/

特定图像的URL:http://www.good-deeds-day.org/gallery/img-35

我想在WordPress中保留此功能。然而,当加载某个图像的URL时,WordPress会将其视为不同的页面,并显示404错误。

有没有办法配置WordPress或.htaccess 这样,当加载此类图像URL时,它将保留URL并加载库页面,从而在库页面中显示相关图像?

2 个回复
最合适的回答,由SO网友:Ido Schacham 整理而成

我最终使用了add\\u rewrite\\u规则:

function bones_rewrite_rules() {
    $gallery_page_id = 395; 
    add_rewrite_rule(\'^gallery/img-.*\', \'index.php?page_id=\' . $gallery_page_id, \'top\');
}
add_action(\'init\', \'bones_rewrite_rules\');

SO网友:Rarst

但从你的描述来看,这不是一个画廊的URL,而是一个画廊的个人图像。我想它应该一致地为这样的URL显示单独的图像,不管它是由WP后端服务还是由客户端操作。

我能想到的最简单的方法是rewrite endpoint. 它可以很容易地锁定现有的permalink结构,并且很容易使用和修改输出。

不幸的是你的格式/img-35 不是端点友好的,但如果可以更改它/img/35 将与端点完美配合。

相关推荐

将重写规则直接添加到.htaccess文件

我想添加一个简单的重写规则RewriteRule ^apply\\/? https://docs.google.com/forms/d/e/1FAIpQLSf5IrOhg0E_NAGZnOvMuaXhU80sio8bukaWVBkb87eEOa9kTw/viewform [L] 我的。htaccess文件如下# BEGIN WordPress # The directives (lines) between "BEGIN WordPress" and "EN