特定页面名称的固定链接

时间:2015-06-18 作者:Thanh Le

我创建了一个新页面,帖子名为“我的页面”。我还有2个自定义查询字符串。因此,URL如下所示:

http://domain.com/my-page/?qst1=aaa&qst2=bbb

我希望URL如下所示:

http://domain.com/aaa/bbb

我该怎么做?我如何告诉WP这是一个有效的URL,因为WP将指向404页(找不到aaa页)。

3 个回复
SO网友:KingCodeFish

在您的中。htaccess您应该能够做一些类似于chriscoyier在CSS技巧上所展示的事情。

链接到Chris Coyier的示例:https://css-tricks.com/snippets/htaccess/subdirectories-redirect-query-string/

既然你没有。在您的URL中,WordPress很可能已经创建了您不需要的重写引擎规则。php。但结果应该仍然很好。

EDIT:

这方面的另一个示例与您的场景非常相似。它位于Apache的Wiki网站上:https://wiki.apache.org/httpd/RewriteQueryString在中显示的示例可以执行此操作。htaccess是这样的:

RewriteCond %{QUERY_STRING} ^(\\w+)=(\\w+)$
RewriteRule ^/path /path/%1/%2?

SO网友:rheeantz

您可以在网站中添加add\\u rewrite\\u rule功能。对于您的情况,您可以尝试以下代码

add_action( \'init\', \'wpse12065_init\' );
function wpse12065_init() { 
add_rewrite_rule(
    \'my-page(/([^/]+))?(/([^/]+))?/?\',
    \'index.php?pagename=my-page&qst1=$matches[2]&qst2=$matches[4]\',
     \'top\'      
);
然后保存永久链接。

在我的页面页面(您需要创建自定义页面模板)中,可以使用以下代码捕获查询变量

if (isset($wp_query->query_vars[\'qst1\']) && !empty($wp_query->query_vars[\'qst1\']) ) {
$qst1 = $wp_query->query_vars[\'qst1\'];
}
else {
//do something else 
}
//do the same step for qst2
希望有帮助

SO网友:ferdouswp

您可以使用permalink设置自定义结构/%类别%/%postname%/。

或者您可以使用https://wordpress.org/plugins/simple-301-redirects/ 插件。

结束

相关推荐

如何使用ApacheHTAccess在多站点上正确强制使用HTTPS和WWW

我有一个wordpress多站点在网络模式下通过wp多网络插件。我一直想用.htaccess 强制所有URLhttps://www.例如:https://domain.com 到https://www.domain.comhttp://domain.com 到https://www.domain.comhttp://www.domain.com 到https://www.domain.com</我在网上找到了这些变体,但我不确定什么是最干净的方法?## force HTTPS and www