301将所有博客帖子重定向到新子文件夹

时间:2015-05-14 17:15:55

标签: regex apache .htaccess mod-rewrite seo

我目前正在使用此.htaccess重写为我的博客帖子获取相当的网址:

RewriteRule ^([a-zA-Z0-9-]+)$ /item.php?slug=$1 [L]

这最终看起来像:

  

example.com/my-new-awesome-blog-post

我希望将所有帖子移至名为的新文件夹,以便它看起来像:

  

example.com/items/my-new-awesome-blog-post

我不仅希望将所有博客帖子移动到子文件夹,还要确保它是正确的301重定向,因此SEO没有问题。

感谢您的帮助/建议。

1 个答案:

答案 0 :(得分:1)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

Options -MultiViews
RewriteEngine On
RewriteBase /

# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{THE_REQUEST} !\s/+items/ [NC]
RewriteRule ^ items%{REQUEST_URI} [L,NE,R=302]

RewriteRule ^items/([a-zA-Z0-9-]+)/?$ items/item.php?slug=$1 [L,QSA]