2011-08-18 158 views
0

我已動態創建圖片鏈接到我的index.html頁面。基本上他們看起來像: http://catdeoderant.com/index.html?catpart=view&catimage=13.htaccess頁面重定向

如何使用的.htaccess這些鏈接重定向到: http://catdeoderant.com/stinkycats/gallery.php

我需要它當您單擊重定向發生的圖像上的位置。我還需要將變量傳遞給重定向頁面。第一個變量總是= view,但第二個可以是任何數字。

還有一件事,因爲它是一個index.html頁面,任何不帶變量的index.html鏈接都不應該被重定向。

謝謝大家,我很喜歡貓,但有時他們確實很臭!

回答

1

使用以下規則:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{QUERY_STRING} ^catpart=view&catimage=([0-9]+)$ 
    RewriteRule ^/index.html$ /stinkycats/gallery.php [R=301,L] 
</IfModule> 

編輯從LazyOne建議。

預期結果:?

  • 的index.html =>的index.html
  • index.html的富=欄=>的index.html
  • 的index.html的CATPart =視圖=>指數。 HTML
  • 的index.html?的CATPart =視圖& catimage = foobar的=>的index.html
  • 的index.html?的CATPart =視圖& catimage = 13 => /stinkycats/gallery.php?catpart=view & catimage = 13

我從來沒有用過%{QUERY_STRING}之前,但它應該是接近你正在嘗試根據該文件http://fantomaster.com/faarticles/rewritingurls.txt

+0

我很抱歉的事情,但是重寫規則無法比擬的查詢字符串這樣的 - 只僅路徑部分(例如, 'index.html')。要處理查詢字符串,你必須使用'RewriteCond%{QUERY_STRING}模式 - 在這裏 - http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond – LazyOne

+0

@LazyOne不知道這一點,我會修改我的答案。感謝您的擡頭。 – red

+0

非常感謝Josh的所有工作。那意義重大。我已經研究了很多,而且你的代碼看起來不錯。該頁面僅循環回到自身,並且不重定向。我確實有一個查詢字符串產生動態圖像鏈接,但你的代碼仍然看起來不錯。我想知道是否需要在.htaccess代碼中使用以前的代碼行,或者是否需要將一些代碼放入.php.ini中才能讓所有代碼都可以正常工作。我會努力的,任何額外的幫助都會很棒。噢,查詢字符串看起來像這樣,但只傳遞在這種情況下提到的兩個變量。 – Darrell