我的域名上有一个由其他网络管理员设置的Wordpress博客。所有帖子均以此文件结构提交:
http://www.example.com/blog/index.php/2012/04/24/name-of-the-post/
我正在尝试将我的.htaccess文件用于301重定向到旧帖子的链接,到这里看到的新地址(注意它是相同的URL,除了缺少/index.php
):
http://www.example.com/blog/2012/04/24/name-of-the-post/
在我的.htaccess文件中,我尝试使用以下方法重定向网址:
RewriteEngine on
RewriteRule ^blog/index\.php/([A-Za-z0-9-/.]+)$ http://www.example.com/blog/$1 [R=301]
问题:当我在.htaccess文件中使用上述RegEx时,我在浏览器中收到错误“未指定输入文件。”,并且重定向确实存在不会发生。我究竟做错了什么?我的正则表达式有问题吗?或者还有其他我想念的东西?
答案 0 :(得分:0)
诀窍是我需要将.htaccess文件放入我的blog
目录。
以下代码对我有用:
RewriteEngine On
RewriteRule ^index\.php/(.*)$ $1 [R=301,L,NC]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress