2013-10-21 122 views
1

我有網址:如何去除.htaccess中的字符串?

http://www.mydomain.com/326-something/something.jpg

在此之前,於: http://www.mydomain.com/img/p/3/2/6/something.jpg

但我也網址: http://www.mydomain.com/125-326-something/something.jpg

我怎麼能忽略這個125-?當然,我有像126,127等前綴的網址。我如何忽略.htaccess這個?

我想從這個網址http://www.mydomain.com/125-326-something/something.jpg

這裏顯示http://www.mydomain.com/img/p/3/2/6/something.jpg是我的htaccess的規則:

RewriteCond %{HTTP_HOST} ^mydomain.com$ 
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L] 
RewriteCond %{HTTP_HOST} ^mydomain.com$ 
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L] 
RewriteCond %{HTTP_HOST} ^mydomain.com$ 
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L] 
RewriteCond %{HTTP_HOST} ^mydomain.com$ 
RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L] 
RewriteCond %{HTTP_HOST} ^mydomain.com$ 
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L] 
RewriteCond %{HTTP_HOST} ^mydomain.com$ 
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L] 
RewriteCond %{HTTP_HOST} ^mydomain.com$ 
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L] 
RewriteCond %{HTTP_HOST} ^mydomain.com$ 
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L] 
+4

我希望這是一個個人項目,或者稍後將要讓你工作的下一個人會討厭以前的開發人員:P – PeeHaa

+0

它是開源軟件,我希望與以前版本的圖像url具有復古兼容性因爲 現在網址是: http://www.mydomain.com/326-something/something.jpg 上的網址是: http://www.mydomain.com/125-326-something/something。 jpg 我想以新格式顯示舊網址的圖片。 –

+0

不是一個答案,但你有沒有考慮過一個PHP重寫器,而不是讓它少一點......醜陋? – PeeHaa

回答

3

我個人高度建議通過一個控制PHP腳本路由所有請求,並在管理這一真正的編程語言,而不是mod_rewrite。

但是,爲了回答直接的問題:

RewriteCond %{HTTP_HOST} ^mydomain.com$ 
RewriteRule ^\d+-(\d+-[_a-zA-Z0-9-]*/.+?\.jpg)$ $1 

上述規則之前添加這些行(未經測試),並允許其落入通過定期修改之前,應該去掉你不想要的部分處理。

+0

不幸的是,來自prestashop.com的開發人員發明了這種方法...非常感謝您的幫助,它完美地工作。 –

+0

@KrystianPodemski你的示例URL中的「something」是否總是將相同的文本重複兩次?如果是這樣的話,可以使用後向引用使它更健壯一些,如果不是這樣的話,那麼就會有一個洞(我看不出任何插入方式),因爲如果文本部分以數字和短劃線開始,他們也會被剝離。如果這永遠不會發生,那麼就沒有必要擔心它。 – DaveRandom

+0

是的,那總是圖像的類型,在這種情況下它是「大的」。 URL始終具有相同的結構,並且您的解決方案對於我的所有舊圖像網址都是完美的。 –