Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 404和自定义.htaccess重写_Wordpress_.htaccess - Fatal编程技术网

Wordpress 404和自定义.htaccess重写

Wordpress 404和自定义.htaccess重写,wordpress,.htaccess,Wordpress,.htaccess,我想做一个内部重定向,所以 /开发/备件/任何 是 /dev/spares/?pid=无论什么 但是维护目录URL/dev/spares/whatever前端。这适用于下面显示的my.htaccess代码中的数字 /开发/备件/12345 但是如果我使用任何文本 /开发/备件/其他123 它给出了一个404。我认为这是Wordpress认为它是一个子页面,但我不知道如何绕过它?我可以破例吗 这是我的.htaccess: RewriteEngine on RewriteBase /dev/ # M

我想做一个内部重定向,所以

/开发/备件/任何

/dev/spares/?pid=无论什么

但是维护目录URL/dev/spares/whatever前端。这适用于下面显示的my.htaccess代码中的数字

/开发/备件/12345

但是如果我使用任何文本

/开发/备件/其他123

它给出了一个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
重新编写引擎打开
重写库/开发/
#我对内部查询字符串的重写
重写规则^spares/([^/]+)spares/\?pid=$1[NC]
#开始WordPress
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/dev/index.php[L]
#结束WordPress
我在Wordpress中使用了一个自定义的永久链接结构:

/%类别%/%postname%/

提前感谢。

我在这里找到了解决方案:

使用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); });