.htaccess重定向,RegEx无法正常工作 - “未指定输入文件。”

时间:2012-04-24 13:16:17

标签: regex .htaccess redirect http-status-code-301

我的域名上有一个由其他网络管理员设置的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时,我在浏览器中收到错误“未指定输入文件。”,并且重定向确实存在不会发生。我究竟做错了什么?我的正则表达式有问题吗?或者还有其他我想念的东西?

1 个答案:

答案 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