【问题标题】:.htaccess 301 redirects in wordpress for select subfolders in a subfolder.htaccess 301 在 wordpress 中重定向子文件夹中的选择子文件夹
【发布时间】:2016-08-08 05:53:45
【问题描述】:

问候并提前感谢您的帮助!

我正在尝试从“类别”子文件夹重定向某些子文件夹,但不是全部。只有大约 5 个。

示例:

http://domain.com/category/fish

http://domain.com/category/lamb

应该重定向到

http://domain.com/tasty/fish

http://domain.com/tasty/lamb

但是:

http://domain.com/category/lead-paint

不应该。

我尝试过的(在 .htaccess 中):

 RewriteRule ^/category/fish http://example.com/tasty/fish [R=301,L]
 RewriteRule ^/category/lamb http://example.com/tasty/lamb [R=301,L]

我在 Wordpress 模块之前和之后都尝试过。我也尝试像这样在 Wordpress 模块中插入:

 # BEGIN WordPress
 <IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^/category/fish http://example.com/tasty/fish [R=301,L]
  RewriteRule ^/category/lamb http://example.com/tasty/lamb [R=301,L]
  RewriteRule ^index\.php$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.php [L]
 </IfModule>
# END WordPress

对 .htaccess 的更改肯定有效。打字错误会产生 500 响应,我可以按 IP 地址阻止。我不确定 Wordpress 是否覆盖了我的重定向,或者我是否有语法错误。

再次感谢您。

【问题讨论】:

  • 两条规则中^后面的前导斜杠需要去掉。您也不需要指定完整的域。只需RewriteRule ^category/fish/?$ /tasty/fish [R=302,L] 即可。 (请注意 302 - 始终使用临时重定向进行测试,然后在您满意时更改为永久。)
  • @Mike Rockett Mike,如果您将此作为答案发布,我会接受。谢谢。

标签: wordpress apache .htaccess redirect http-status-code-301


【解决方案1】:

您需要删除两条规则中^ 之后的前导斜杠。您也不需要指定完整的域。以下会做

RewriteRule ^category/fish/?$ /tasty/fish [R=302,L]

(请注意 302 - 始终使用临时重定向进行测试,然后在您满意时更改为永久。)

【讨论】:

    猜你喜欢
    • 2014-12-03
    • 2011-12-15
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 2015-02-01
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多