2012-04-24 64 views
1

我的域名上有一個由其他網站管理員設置的WordPress博客。所有的職位都是該文件結構下一篇:.htaccess RegEx重定向不起作用 - 「沒有指定輸入文件。」

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

你在哪裏看到這樣的錯誤?誰生成它 - WordPress還是Apache?你能檢查Apache的錯誤日誌中是否有**完全**錯誤信息。 – LazyOne 2012-04-24 13:20:09

+0

我不確定你的意思。它看起來像是從服務器生成的,因爲它是一個完全空白的白窗而不是錯誤消息。我不相信它是由Wordpress製作的。 – adamdehaven 2012-04-24 13:21:00

+0

請檢查Apache的錯誤日誌 - 如果它是由Apache生成的,它應該有確切的描述。 – LazyOne 2012-04-24 13:34:21

回答

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