具有自定义.htaccess的Wordpress 404重写

时间:2019-02-28 10:17:21

标签: wordpress .htaccess

我想进行内部重定向

  

/ dev / spares /任何内容

  

/ dev / spares /?pid =任何内容

但是维护目录URL / dev / spares /任何前端。可以使用下面显示的.htaccess代码中的数字很好地工作。

  

/ dev / spares / 12345

但是,如果我使用任何文本

  

/ dev / spares / whatever123

它给出404。我认为这是Wordpress认为它是子页面,但我不知道该如何解决?我可以以某种方式例外吗?

这是我的.htaccess:

RewriteEngine on
RewriteBase /dev/
# My rewrite for internal query string
RewriteRule ^spares/([^/]+) spares/\?pid=$1 [NC]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /dev/index.php [L]
</IfModule>
# END WordPress

并且我在Wordpress中使用自定义的永久链接结构:

  

/%category%/%postname%/

谢谢。

1 个答案:

答案 0 :(得分:0)

我在这里找到了解决方案: https://wordpress.stackexchange.com/questions/247573/rewriterule-accepts-numbers-but-not-letters-in-tag

使用Wordpress功能:

add_action( 'init', function(){
    return add_rewrite_rule(
        'spares/([^/]+)/?$',
        'index.php?pagename=spares&pid=$matches[1]',
        'top'
    );
});

add_filter('query_vars', function($v){ return array_merge(array('pid'),$v); });