2012-09-24 56 views
0

我們將部分網站從一個子文件夾移至另一個子文件夾。我想將永久重定向(301)放入htaccess中,以便在這個文件夾中的文件(有些文件也改變了文件名,所以我不能只爲整個文件夾設置一個規則)。這是我想要的如何將htaccess重寫爲單個文件的另一個文件夾?

RewriteRule ^search/tutorial-search.html$ db/tutorial.php [R=301] 

雖然這不起作用,但現在輸入舊網址時我收到了404響應。我覺得這是好奇,我不得不在原地年齡的規則,做的工作,它看起來像這樣:

RewriteRule ^search/tutorial-search.html$ search/tutorial-search.php 

我真的沒有看到很大的區別。我也嘗試了以下(等),但它也不起作用

RewriteRule ^search/tutorial-search.html$ db/tutorial.php 

究竟是什麼導致這失敗?只是爲了確保我把所有這些放在htaccess文件的同一行。是因爲我正在重寫到另一個文件夾嗎?謝謝:)

+0

更新:這是的.htaccess重寫規則 – janb

回答

0

嘗試添加一個前導斜槓到你的重寫目標,因爲當重定向時,Apache可能會誤認URL路徑與文件路徑。

RewriteRule ^search/tutorial-search.html$ /db/tutorial.php [R=301] 
+0

感謝,更高(第三方)的一部分不幸的是仍導致404 :( – janb

+0

@janb是否要通過'http:// YOURDOMAIN。 com/db/tutorial.php的結果是404?你的htaccess文件是否在你的文檔根目錄下? –

+0

不,直接訪問URL不會導致404,我確信這是.htaccess是在根目錄下並且肯定是活躍的,正如我所說的,如果我用先前的代碼(第二代碼片段)取代該行,那麼它的工作方式就是按照預期的那樣。但是,這是舊的重定向,並且不再適用於我們的新文件夾結構 – janb

相關問題