如何-正确的WordPress 301重定向?

时间:2017-05-16 作者:Gore

我需要301重定向:example.com/service-1.htmlexample.com/our-services/1/.

我尝试了重定向插件.htaccess:

  1. Redirect /service-1.html /our-services/1/

  2. Redirect 301 /service-1.html http://www.example.com/our-services/1/

  3. RewriteRule ^service\\-1\\.html$ /our-services/1/? [L,R=301]

  4. RewriteRule ^(.*)/service-1.html$ http://www.example.com/our-services/1/$1 [R=301,L]

但每次我被重定向到(Woocommerce)产品页面时,都没有任何效果product/1.

Wordpress.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
我做错了什么?

1 个回复
最合适的回答,由SO网友:MrWhite 整理而成

您可能将指令添加到错误的.htaccess 文件它需要在现有WordPress指令之前位于顶部。您还应该使用RewriteRule (即mod\\U rewrite),因为您有现有的mod\\U rewrite指令(WP前控制器)。

就像你第三次尝试.htaccess 文件应导致适当的重定向。例如:

RewriteRule ^service-1\\.html$ /our-services/1/? [R=302,L]
只有当您确定301工作正常时,才更改为301(如果这是您的意图)。301s由浏览器硬缓存,因此您需要确保在测试之前清除浏览器缓存。

这个?RewriteRule 替换只需从请求中删除查询字符串。这是否是必需的取决于您,但您的示例中没有查询字符串。

结束

相关推荐

固定链接已停止工作-未更新,已启用mod_rewrite,未触及.htaccess

起初,我的permalinks和所有产品都起了作用。我的permalinks在/year/month/post/ 总体安排今天我发现,当我试图打开一个Anspress的问题时,我得到了一个404。(上次我检查时也是这样)然后我在某个地方读到我需要的永久链接格式/postname/ 显示Anspress问题。所以我改成/postname/. 现在除了index.php?p=xyz 正在工作。所有指向页面的链接都会抛出404。我试着换回/year/month/post/ , 但这没有帮助。尝试转到永久链接并单