【问题标题】:Wordpress htaccess RewriteRule not working - even with add_rewrite_ruleWordpress htaccess RewriteRule 不起作用 - 即使使用 add_rewrite_rule
【发布时间】:2014-11-18 19:40:00
【问题描述】:

我正在尝试在我的 Wordpress htaccess 文件中添加一些行以重定向一些 url,但无论我将行放在哪里,我都没有运气。我尝试使用http://www.regexr.com/ 测试我的正则表达式,它工作正常,但是当我在 htaccess 文件本身中使用它时,什么也没有发生。

URL 是另一个页面的子页面(slug 是 /wedding-fayre-diary/) - 我想删除这些页面(包括父页面)但重定向 URL 以防止发生 404 错误。

我要进行模式匹配的 URL 看起来像……

http://findyourdreamdress.co.uk/wedding-fayre-diary/gorgeous-with-curves/
http://findyourdreamdress.co.uk/wedding-fayre-diary/impression-bridal/
http://findyourdreamdress.co.uk/wedding-fayre-diary/ivory-co/
http://findyourdreamdress.co.uk/wedding-fayre-diary/ella-rosa/

我希望 URL 重定向到该 URL 的博客……

http://findyourdreamdress.co.uk/blog/

这是我的 htaccess 代码……

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
RewriteRule ^wedding-fayre-diary/(.*) /blog/ [QSA,L]

【问题讨论】:

    标签: php regex wordpress .htaccess mod-rewrite


    【解决方案1】:

    再次环顾四周后,我设法找到了答案 - 我想我错过了几个重要的标志。我将它们更改为 [R=301,L,NC] 并将该行放在标准 Wordpress 规则之上,一切看起来都很时髦。这是我完成的代码……

    RewriteRule ^wedding-fayre-diary/(.*)$ /blog/ [R=301,L,NC]
    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    

    还值得注意的是,您不能使用 Wordpress add_rewrite_rule 函数添加标志 - 它可以用于重定向单个 url,但如果您需要像我一样使用标志,您最好编辑 .htaccess 文件本身。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      • 1970-01-01
      • 2014-08-02
      • 2019-03-17
      • 2012-12-30
      • 1970-01-01
      相关资源
      最近更新 更多