我有WordPress网站,有电影和演员自定义帖子类型。我也与电影和演员建立了关系。
我有一个页面列出与演员有关的电影。在此页面上,访问者可以看到演员扮演角色的角色。
此页面网址如下:
http://www.mywebpage.com/actors-films/?id=123456
id
指的是演员,我id
正在进行查询并在页面上显示。
此页面也支持分页,此URL也适用:
http://www.mywebpage.com/actors-films/page/2/?id=123456
actors-film
页面是一个使用自定义模板的页面,此模板确定演员ID并显示他的电影。
每件事都运作正常,但我想更改一点SEO友好的URL。
我尝试了很多网址格式
http://www.mywebpage.com/actors-films/jim-carrey
我不知道为什么,但这个URL重定向到演员页面。
http://www.mywebpage.com/actors/jim-carrey
http://www.mywebpage.com/actors-films/123456-jim-carrey
我试图用.htaccess
抓住这种网址,但无法捕捉它,它总是显示404未找到。
所以,我需要用分页支持进行重写,请你建议我这样做吗?
编辑:这是我的.htaccess文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^actors-films/([0-9]*)\-([^/]*)$ ^actors-films/?id=$1 [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
编辑:我意识到规则不适合我:
例如:
http://www.mywebsite.com/tex显示带有此规则的404:RewriteRule ^ / tex /index.php [L]
答案 0 :(得分:0)
这是解决方案,创建一个名为
的页面add_filter('query_vars', 'ap_register_query_vars');
function ap_url_redirect_rules(){
add_rewrite_rule('actors-films/([^/]*)','index.php?pagename=artist-film-list&actor_slug=$matches[1]','top');
flush_rewrite_rules();
}
function ap_register_query_vars($query_vars){
$query_vars[]='actor_slug';
return $query_vars;
}