2015-11-08 169 views
0

我試圖將現有流量重定向到重寫的站點,該站點現在在Apache服務器上使用動態URL與RewriteRule,例如。將靜態url重定向到動態

重定向重寫URL的whatever.com/directory/some_pagewhatever.com/directory/?m=some_page

每個示例顯示周圍的其他方法(動態與靜態),所以工作例子似乎很難得的。到目前爲止,我嘗試過的所有內容都沒有任何效果,或者返回500服務器錯

原來some_page仍然存在,但不是一個索引文件,它現在只是一堆的JPG文件

回答

0

的.htaccess被陷在一個循環,因爲我無法得到它來處理查詢字符串(最有可能是因爲我缺乏經驗的),所以我把那就是要使導航回到/directory/some_page 403的優勢仍然存在但沒有索引文件(.htaccess拒絕目錄列表)。

403現在被髮送到一個php錯誤頁面,使用header()重定向到/directory/?m=some_page的正確地址。

我知道調用一個額外的頁面的開銷,但它不會經常發生(根據服務器日誌),它的工作原理。

0

明白,你講的例子是選擇重寫,其中,用戶看到的網址是很重要重寫,以便應用程序獲取它可以理解的URL。儘管聽起來像你想要的是一個重定向,它是在客戶被髮送到應用程序之前,客戶獲得的URL被更改爲新的URL的地方。

重定向從whatever.com/directory/?m=some_page到whatever.com/directory/some_page您可以執行此操作。

RewriteBase/
RewiteCond %{QUERY_STRING} m=([^&]+) [NC] 
RewriteRule ^directory/.? /directory/%1 [NC, L, R] 

重寫從whatever.com/directory/?m=some_page到whatever.com/directory/some_page你可以做到這一點。

RewriteBase/
RewiteCond %{QUERY_STRING} m=([^&]+) [NC] 
RewriteRule ^directory/.? /directory/%1 [NC, L] 

重定向從whatever.com/directory/some_page /目錄/ΔM= some_page你可以做到這一點。

RewriteBase/
RewriteRule ^directory/([^/]+)/? /directory/$1 [NC, L, R] 

重寫從whatever.com/directory/some_page /目錄/ΔM= some_page你可以做到這一點。

RewriteBase/
RewriteRule ^directory/([^/]+)/? /directory/$1 [NC, L] 

從閱讀你的問題我不完全知道你正在嘗試做的,但上面的應該解決這個問題。

+0

我需要重定向從靜態地址到動態。它現在排序。 – Eeji