【问题标题】:wordpress custom htaccess rewrite not redirectwordpress 自定义 htaccess 重写不重定向
【发布时间】:2014-05-13 06:21:54
【问题描述】:

我正在尝试创建所有链接到主页的“人造”页面,其中包含 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/(url 地址发生变化并呈现 single.php 模板)


我假设 index.php(或“/”)然后由 wordpress 处理,在其中它试图找到与我正在处理它的变量的内容最接近的名称的帖子并重定向到帖子?

有谁知道如何让输入的 url 留在地址栏中并让主页处理 GET 变量?

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

【问题讨论】:

    标签: wordpress .htaccess mod-rewrite redirect


    【解决方案1】:

    我认为与其在 .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 规则与 url 匹配以及为什么要呈现特定模板。

    您的 URL 很可能与 Wordpress 的其他重写规则模式相匹配。所以在wordpress中注册你自己的规则让你有机会在核心规则之前检查它,注意add_rewrite_rule的第三个参数是'top',这个指定相同

    【讨论】:

    • 啊太棒了.. 你的代码中有一个额外的} 会破坏它
    • 如何访问这些匹配的变量? $_GET$_REQUEST 返回空数组,它看起来不像被传递到 $post$wpdb
    • 感谢您指出额外的}。更正。为此,您必须使用 add_rewrite_tag ,您可以使用该函数注册查询字符串变量,并在查看此处codex.wordpress.org/Rewrite_API/add_rewrite_tag 后使用 $wp_query->query_vars['VARIABLE'] 访问它们
    • 还要记得在添加/修改规则后刷新重写规则。 flush_rewrite_rules(true)
    猜你喜欢
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多