2011-04-18 27 views
0

我一直在使用mod_rewrite,似乎無法獲得顯示不錯的網址,仍然在url中顯示php變量。mod_rewite問題

這是當前的htaccess:

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/
RewriteRule ^/display/([^/]+)$/([^/]+)\$ http://www.mydomain.tld/display.php?photo_id=$1&photo_size=$2 [NC] 

基本上,我想盡一切辦法得到一個乾淨的網址,如下所示,以顯示: http://www.mydomain.tld/display/3456/large

任何想法?

回答

0

不知道,如果那真的是問題,但似乎有一個反斜槓和美元符號太多

^/display/([^/]+)$/([^/]+)\$ 
       |  | 

^/display/([^/]+)/([^/]+)$ 
+0

我試過,並且結果相同,現在頁面加載時間看起來像是試圖重寫..有沒有其他建議? – Jeremy 2011-04-19 01:02:50

+0

仍然沒有運氣: RewriteRule^display /([0-9] +)/([a-z] +)$ http://www.domain.tld/display.php?photo_id = $ 1&photo_size = $ 2 [NC] – Jeremy 2011-04-19 02:01:23

0

好,如果你在URL輸入瀏覽器重寫工作..所以mod_rewrite的是這樣做的工作,但它不是重新書寫時與變量訪問的網址:

http://www.domain.tld/display.php?photo_id=2304&photo_size=Large(無重寫) http://www.domain.tld/display/2304/Large(鍵入時有效)

我失去了一些東西哪裏?

使用下面的信息,仍然不重定向,不知道是否我的代碼放置錯了某處或者如果mod_rewrite的某些內容可能在apache內被破壞。

0

你重寫規則說你重寫http://www.domain.tld/display/2304/Largehttp://www.domain.tld/display.php?photo_id=2304&photo_size=Large(意先存儲在第二位)

如果你想要那種類型http://www.domain.tld/display.php?photo_id=2304&photo_size=Large被重定向到http://www.domain.tld/display/2304/Large用戶需要:

RewriteCond %{QUERY_STRING} ^photo_id=([0-9]+)&photo_size=(.*)$ 
RewriteRule display.php /display/%1/%2 [R,L] #R to redirect, and then change the URL in the browser 

和你必須添加類似的東西

RewriteCond %{REDIRECT_URL} !^display.php$ 
RewriteRule ^/display/([^/]+)/([^/]+)$ display.php?photo_id=$1&photo_size=$2 

爲了避免無限循環。