2012-08-10 57 views
-1

我已將網站從一個框架移動到另一個框架,現在我想重定向重要頁面(大約20個)。如何重定向他們使用Apache重寫?下面舉例說明:如何使用htaccess重定向動態頁面

Old: http://mydomain.com/ba/stream.php?kat=15 
New: http://www.mydomain.com/bs/about-us/our-partners 

Old: http://mydomain.com/ba/stream.php?kat=29 
New: http://www.mydomain.com/bs/catalogues/it-catalogue 

此外,上市重要的網頁後,我想重定向形式的所有剩餘鏈接:

http://mydomain.com/ba/whatever-is-here 

http://www.mydomain.com/bs/ 

繼TerryE的建議,我會附上我的最新代碼,這是不工作:)

RewriteCond %{QUERY_STRING} ^kat=15$ 
RewriteRule ^stream\.php$ http://www.mydomain.com/bs/about-us/our-partners [R=301,L] 

還要說明一點:我使用此代碼根域名重定向到www子域名:

RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC] 
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L] 

我已經把這個根到www代碼下面的代碼爲特定頁面重定向,當我在瀏覽器中測試http://mydomain.com/ba/stream.php?kat=15,我重定向到http://www.mydomain.com/bs/ba/stream.php?kat=15

+0

你有什麼試過或研究過的?你有沒有使用'%{QUERY_STRING}'條件讀取任何重寫示例?我們在這裏幫助,而不是爲你做你的想法。 – TerryE 2012-08-10 23:58:33

+0

如果我冒犯了你,我很抱歉。我花了數小時研究,嘗試和沒有運氣測試。這就是我問的原因。我知道這應該很容易做到,這就是爲什麼我沒有附加任何我嘗試過的代碼。 – 2012-08-11 01:14:05

+0

@AdnanKurtovic:顯示你的嘗試,即使他們不工作,a)表現出對你的真誠努力,b)幫助回答者明白你想要做什麼,以及c)幫助回答者,他們可能已經嘗試了同樣的事情(在某些情況下,它可能不像你想象的那麼容易)。 – 2012-08-11 01:34:27

回答

1

阿德南,

您需要將以下行添加到您的DOCROOT/.htaccess。這假定您的ba子目錄中沒有任何.htaccess文件。 (爲什麼的解釋見Tips for debugging .htaccess rewrite。)

RewriteEngine On 
RewriteBase /
# 
# Redirect kat 15 to the Partners page 
# 
RewriteCond %{QUERY_STRING} ^kat=15$ 
RewriteRule ^ba/stream\.php$ http://www.mydomain.com/bs/about-us/our-partners? [R=301,L] 
# 
# Redirect all other kat ids to the corresponding bs page 
# 
RewriteCond %{QUERY_STRING} ^kat=(\d+)$ 
RewriteRule ^ba/stream\.php$ http://www.mydomain.com/bs/%1? [R=301,L] 

注:

  • 規則對UPI匹配少的主導路徑(在這種情況下/)
  • 你需要有尾隨?替換字符串以抑制現有的查詢參數。
  • %n參數從上次成功的條件匹配中選取匹配變量。
+0

謝謝@TerryE你的建議真的有竅門。還有一件事是以格式「http://mydomain.com/ba/stream.php?kat = 12」重定向所有其他頁面,其中12代表任何數字到子文件夾「bs」。你能幫我解決這個問題嗎?我試着添加這個代碼'RewriteRule^ba/*/bs/$ 1 [R = 301,L]'但它不起作用。我已經嘗試過'RewriteRule^ba /(。*)$/bs/$ 1 [R = 301,L]'以及相似的結果:) – 2012-08-15 17:27:59

+0

@AdnanKurtovic,我已經添加了您需要的額外行。如果你閱讀解釋這個的mod_rewrite文檔,這將有所幫助; - ?順便說一句如何回答答:-) – TerryE 2012-08-15 20:58:51

+0

非常感謝你。當我需要使用這個功能時,我通常會解決特定的問題,但我一定要坐下來好好學習。再次感謝。 – 2012-08-16 08:29:24