wordpress自定义htaccess重写不重定向

时间:2014-05-13 06:21:55

标签: wordpress .htaccess mod-rewrite redirect

我正在尝试创建所有链接到主页的“仿”页面以及GET数据中的相关变量。例如:

http://example.com/img/IMGNAME/comment/5678/

提供以下数据: http://example.com/?image=IMGNAME&comms=5678

我的htaccess文件中有以下内容:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^img/([^/]+)/comment/([^/]+) /?image=$1&comms=$2 [L,NS]
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress

问题是我有一个帖子有一个IMGNAME的帖子(这就是我在主页上给出GET变量的帖子)。


当我手动输入http://example.com/?image=IMGNAME&comms=5678时,一切正常。

当我输入http://example.com/img/IMGNAME/comment/5678/

我被重定向到http://example.com/category/IMGNAME/(网址更改并呈现single.php模板)


我假设index.php(或'/')然后被wordpress处理,其中它试图找到最接近变量内容的帖子,我把它和REDIRECTS交给帖子?

有谁知道如何在地址栏中输入url STAY并允许主页处理GET变量?

我是否需要创建基本index.php文件的不同版本,以使其不重定向/搜索类似命名的帖子?我仍然需要它来处理我的主题模板页面与wordpress标签等。

1 个答案:

答案 0 :(得分:2)

我认为不是在.htaccess中重写你应该添加新的自定义重写规则wordpress方式。

function my_custom_rewrites(){
    add_rewrite_rule(
        'img/(.*)/comment/(.*)',
        'index.php?image=$matches[1]&comms=$matches[2]',
        'top' );
}
add_action( 'init', 'my_custom_rewrites' );

您还可以尝试在此处分享的提示http://docs.dev4press.com/tutorial/practical/debug-wordpress-rewrite-rules-matching/,这些提示可能有助于您了解哪个Rewrite规则与网址匹配以及为何呈现特定模板。

您的网址可能与Wordpress的其他重写规则模式相匹配。因此,在wordpress中注册自己的规则使您有机会在核心规则之前检查它,注意add_rewrite_rule的第三个参数,它表示&#39; top&#39;,这指定了相同的