Wordpress htaccess重定向别名不起作用

时间:2017-08-29 21:09:04

标签: wordpress apache .htaccess redirect

我有以下格式的一些链接

  

我想重定向到以下格式

  

我已将以下代码添加到htaccess文件中,但它无法正常工作并提供404消息

RewriteRule ^ranges/([^/]+)/? ranges?param1=$1

完整的htaccess文件如下所示

# BEGIN WordPress
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /india
RewriteRule ^ranges/([^/]+)/? ranges?param1=$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /india/index.php [L]
</IfModule>

# END WordPress

为了澄清,我需要重定向才能像这样工作;

http://127.0.0.1/india/ranges/MyValue1/&gt; http://127.0.0.1/india/ranges/?param1=MyValue1

有关如何使用htacces或其他任何方式实现此目的的任何建议?

1 个答案:

答案 0 :(得分:1)

您希望使用add_rewrite_rule()而不是编辑您的htaccess。我讨厌假设,但你没有提供任何细节;如果ranges是自定义帖子类型(编辑:结果&#39;范围&#39;是一个页面,请回答编辑),然后将其添加到您的function.php文件中:

function stack_45948362_rewrite() {
    add_rewrite_rule('^ranges/([^/]+)?$','index.php?pagename=ranges&query=$matches[1]','top' );
}
add_action( 'init', 'stack_45948362_rewrite', 10, 0);

然后添加&#39;查询&#39;作为查询var(尽管我选择一个不那么通用的名称来避免碰撞)。

function stack_45948362_qvars($vars) {
    $vars[] = 'query';
    return $vars;
}
add_filter( 'query_vars', 'stack_45948362_qvars', 10, 1);

请务必转到设置&gt;以清除固定链接。永久链接并点击“保存更改&#39;。

很可能你的404是由&#34;范围引起的?query =&#34;,因为Wordpress正在寻找一个真正的php页面来处理。