.htaccess重写URL - 调整以纠正路径

时间:2014-07-22 01:18:41

标签: regex apache .htaccess mod-rewrite

我已经将博客转移到另一个主机上,并且有几个帖子的链接现已被破坏。这是因为我已将博客移到子目录/ blog /中。它以前位于根目录中。

我希望我可以重定向任何导致404的URL请求:

http://example.com/2014/04/10/the-blog-post

http://example.com/blog/2014/04/10/the-blog-post

基本上所有htaccess文件需要做的是在查询字符串之前添加“blog”,如果请求的URL不存在。

谢谢!

1 个答案:

答案 0 :(得分:1)

试试这个:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(?!blog) blog%{REQUEST_URI} [L,R,DPI]

如果您对重定向有效,可以将R更改为R=301以使其永久化。

选项2

对于最后一行,您也可以使用:

RewriteRule ^(?!blog)(.*) blog/$1 [L,R]