【问题标题】:URL rewrite (htaccess) does not work in Wordpress page template with custom scriptURL 重写 (htaccess) 在带有自定义脚本的 Wordpress 页面模板中不起作用
【发布时间】:2020-03-09 16:23:25
【问题描述】:

我有以下网址:

https://example.com/verlicitacion/?slug=example-string

我想把她变成这个:

https://example.com/tender/example-string

我使用wordpress,路径“/verlicitacion/”是一个wordpress页面,它实际上是一个php脚本,我用作自定义模板页面,我保存在主题目录(wp-content/themes/freelanceengine /verlicitacion.php)。

脚本捕获变量“_GET['slug']”并从外部api获取信息。

wordpress 网站上当前不存在路径“/tender/”。

在我的 .htaccess 中,我尝试将其添加到文件顶部:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^tender/(.+)$ /verlicitacion/?slug=$1 [L]
</IfModule>

但是当我尝试进入时:https://example.com/tender/example-string 我得到一个错误 404。(主题的错误页面)。

我已经被这个问题困扰了将近两天。我做错了什么?

提前致谢。

【问题讨论】:

    标签: php linux wordpress .htaccess


    【解决方案1】:

    尝试使用add_rewrite_rule函数, 在您的情况下,它应该如下所示:

    function custom_rewrite_rule() {
        add_rewrite_rule('^tender/(.+)$','/verlicitacion/?slug=$1','top');
    }
    add_action('init', 'custom_rewrite_rule', 10, 0);
    

    注意:这段代码我不测试,可能不行,你可以研究一下这个功能了解更多。

    注意2:添加/删除规则后必须刷新规则,可以使用flush_rewrite_rules函数或者去wordpress dashboard &gt; settings &gt; permalink重新保存设置

    【讨论】:

    • 感谢@aidinMC,但不起作用。我执行代码但没有任何反应。我已经检查过$rules = get_option( 'rewrite_rules' ); var_dump($rules); 我没有看到任何添加。 (我已经脸红了)。
    猜你喜欢
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多