RewriteRule只适用于数字,我目前正在尝试获取链接
实例com/subdir/StackExchange/
充当链接,例如附加网站标签:
实例com/细分?网站=StackExchange
我在中设置了一个重写规则。htaccess如下所示:
RewriteRule ^subdir/(.*)/$ subdir.php?website=$1 [L]
当我使用数字时(
example.com/subdir/123/
),
echo $_GET["website"]
成功回显“123”。只要我用字母顺序(
example.com/subdir/abc/
) 确实如此
not 工作
我如何改变这个?这是WordPress的问题吗?我已经将WordPress设置仪表板中的permalink选项设置为“Post name”。我也尝试了其他方法,但没有任何改变。
最合适的回答,由SO网友:Ismail 整理而成
离开.htaccess
单独地您可以使用WordPressrewrite API 为了这个。
add_action( \'init\', function(){
return add_rewrite_rule(
\'subdir/([^/]+)/?$\', // ([^/]+) takes alphanumeric, while ([0-9]+) accepts digits
\'index.php?pagename=subdir&website=$matches[1]\',
\'top\'
);
});
add_filter(\'query_vars\', function($v){ return array_merge(array(\'website\'),$v); });
首先确保
subdir
在本例中,是有效的页段塞。将代码保存到子主题的函数文件或插件后,现在可以使用
get_query_var(\'website\')
获取
website
属性而不是使用
$_GET
全球的
希望这有帮助。