URL Rewrite(无重定向)配置求助:修改两类页面URL路径
URL内部重写解决方案(仅重写不跳转)
我帮你整理了几种常见场景下的可行方案,你可以根据自己的服务器或建站框架来选择:
Apache 服务器(使用 mod_rewrite)
如果你的网站运行在Apache上,直接在网站根目录的.htaccess文件里添加以下规则即可——这些是内部重写,只会在服务器层面映射新URL到旧路径,浏览器地址栏不会变化:
RewriteEngine On # 处理单个项目页面:将 /reparatieoverzicht/xxx 映射到 /nproject/xxx RewriteRule ^reparatieoverzicht/(.+)$ /nproject/$1 [L] # 处理归档页面:将 /reparatie-categorie/xxx 映射到 /nproject-category/xxx RewriteRule ^reparatie-categorie/(.+)$ /nproject-category/$1 [L]
注意:确保服务器已经启用了
mod_rewrite模块,如果不确定可以联系主机服务商确认。
Nginx 服务器
如果是Nginx环境,把以下规则添加到你的站点配置文件的server块中:
# 单个项目页面内部重写 rewrite ^/reparatieoverzicht/(.+)$ /nproject/$1 last; # 归档页面内部重写 rewrite ^/reparatie-categorie/(.+)$ /nproject-category/$1 last;
last指令会让Nginx停止当前规则集,用新的URL重新匹配,完全符合你要的“仅重写不跳转”需求。
WordPress 自定义帖子类型/分类场景(更原生的方案)
如果你的nproject是自定义帖子类型、nproject-category是对应的自定义分类,那更推荐直接修改注册参数,而不是依赖服务器rewrite规则:
- 修改自定义帖子类型的Slug:
找到注册nproject帖子类型的代码(通常在主题functions.php或自定义插件里),调整rewrite参数:
register_post_type( 'nproject', array( // 其他参数... 'rewrite' => array( 'slug' => 'reparatieoverzicht', 'with_front' => false // 如果不想继承固定链接的前缀(比如/blog/)就设为false ), ) );
- 修改自定义分类的Slug:
同样,找到注册nproject-category分类的代码,调整rewrite参数:
register_taxonomy( 'nproject-category', 'nproject', array( // 其他参数... 'rewrite' => array( 'slug' => 'reparatie-categorie', 'with_front' => false ), ) );
- 刷新固定链接:
修改代码后,登录WordPress后台,进入「设置」→「固定链接」,不需要修改任何设置,直接点击「保存更改」,这样WP会自动更新重写规则。
这种方案的好处是完全适配WordPress的路由机制,不会出现服务器规则和WP规则冲突的问题。
内容的提问来源于stack exchange,提问作者user9799091
相关产品推荐
相关产品推荐

