2009-09-17 111 views
0

我有一個我想用mod_rewrite縮短的URL。使用.htaccess和mod_rewrite改善此網址

在它的最醜陋的形式,它看起來像:

/img.php?i=15&a=92 

理想的情況下它會看起來像:

/img/15/92 

的問題是有時候可能只是:

/img.php?i=15 

在哪該人將輸入:

/img/15 

所以我想,我需要這樣的mod_rewrite的:當兩個變量在URL,而不僅僅是縮短版

RewriteRule ^/img/(.*)/(.*)$ /img.php?i=$1&a=$2 

其中我想象纔會工作。

我該如何進行適用於兩者的單一重寫,或者如何在不取消對方的情況下製作2個?

回答

2

試試這個規則:

RewriteRule ^img/([0-9]+)(/([0-9]+))?$ img.php?i=$1&a=$3 

當在.htaccess文件中使用mod_rewrite,你需要刪除從模式中每目錄的路徑前綴(在這種情況下,領先/)。因爲mod_rewrite也會這樣做,並在重寫過程之後放回它。

+0

我不知道你如何從1美元到3美元沒有2美元 - 但它的工作原理。 legend Gumbo – willdanceforfun 2009-09-17 22:07:02

+0

@cosmicbdog:第二組是包含第三組的可選一個'(...)?'。 – Gumbo 2009-09-17 22:44:08