使用 htaccess 屏蔽/更改 url - wordpress slug
Posted
技术标签:
【中文标题】使用 htaccess 屏蔽/更改 url - wordpress slug【英文标题】:Masking / changing url with htaccess - wordpress slug 【发布时间】:2014-10-03 10:46:10 【问题描述】:对于我的一个新的 Wordpress 网站,我遇到了一个小问题。
有一个名为“vehicle”的自定义帖子类型,它使用 url slug 'vehicle'。
问题是,我的网站不是针对汽车,而是针对船,所以我想将 URL 更改为 www.domain.com/boats/boatname1 而不是 www.domain.com/vehicle/boatname1。
我已使用以下代码成功编辑了 slug - 之后我刷新了重写 url 并来回更改了永久链接:
function change_vehicle_rewrite_rules()
global $wp_post_types;
$rewrite = &$wp_post_types['vehicle']->rewrite;
$rewrite['slug'] = 'horses';
add_action( 'init', 'change_vehicle_rewrite_rules', 999 );
在我的主页上,有显示 www.domain.com/boats/boatname 的 nog 链接,但是当我点击它们时,我得到一个 404。如果我将 url 更改为 www.domain.com/vehicle/boatname 它确实有效。所以 url 已经改变了,但是工作帖子仍然显示在 /vehicle/ 下而不是 /boats/ 下。
有没有办法,也许使用 .htaccess,以便我网站上显示 /vehicle/ 的每个 url 都更改为 /boats/ ?
或者当我点击链接 www.domain.com/boats/boatname 时,它会显示 /vehicle/ 内容,但在 URL 中显示 /boats/。
提前感谢您的帮助!
迈克
【问题讨论】:
我认为篡改 .htaccess 不会有任何好处。虽然您可能会解决此问题(例如,当 url 中包含“boat”时传递type=vehicle
,这将导致进一步破坏。Worpress 需要通过其内部重写逻辑来处理所有事情。您应该尝试保留车辆类型,但在尝试任何其他解决方案之前将其 slug 更改为船。
【参考方案1】:
我们在这里讨论了多少个不同的 URL?如果不是很大,您可以查看其中一个文本替换插件并指定每个原始 URL,以及您希望将文本替换为什么(即:从“车辆”到“船”)
http://wordpress.org/plugins/text-replace/
【讨论】:
以上是关于使用 htaccess 屏蔽/更改 url - wordpress slug的主要内容,如果未能解决你的问题,请参考以下文章
使用 htaccess 重定向页面,但保留 URL 结构并仅更改域
使用 htaccess 重定向子域而不更改地址栏中的 URL