2014-03-24 61 views
0

我不知道我會怎麼說這個,我無法理解httpd的文檔,所以我想知道是否有人知道如何做到這一點。.htaccess在URI中獲取請求

我想獲得

www.example.com/v/12345/yadayada.png

真正去

www.example.com/view?key=12345&img=yadayada.png

我已經看到了這個做了一些網站,但我不能找出如何做到這一點。

感謝

編輯1:

我想這一點,然後進入以下網址:

www.example.com/v/3f210a2c76cb100f4f7fbd7691a9eb967cb7a1a7/10b78802581bfd59f3fe2b447575bdf7.png

當我這樣做,我得到了以下錯誤:

The requested URL /v/3f210a2c76cb100f4f7fbd7691a9eb967cb7a1a7/10b78802581bfd59f3fe2b447575bdf7.png was not found on this server.

這是我當前的.htaccess

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 
RewriteRule ^([^./]+\.png)$ /i/$1 [L,NC] 
RewriteRule ^v/([0-9]+)/([^/.]+\.(png|jpe?g|gif))$ /view.php?k=$1&img=$2 [L] 

回答

0

@JonLin有正確的規則,但重寫規則你已經在這之前宣佈,

RewriteRule ^([^./]+\.png)$ /i/$1 [L,NC] 

是應用於您提供的示例網址。因此,與像

www.example.com/v/3f210/10b7.png 

的請求會得到改寫爲

www.example.com/i/v/3f210/10b7.png 

如果你要刪除這條規則,你會得到值得注意的使用您的規則

L - Stop the rewriting process immediately and don't apply any more rules 
NC - Makes the pattern comparison case-insensitive. 

的標誌你想要的結果。您還應該確定是否需要該規則並修改它,標誌和/或重新排列規則的順序。

RewriteEngine On 
RewriteRule ^v/([0-9]+)/([^/.]+\.(png|jpe?g|gif))$ /view.php?k=$1&img=$2 [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 
0

嘗試在htaccess文件,這些規則在您的文檔根目錄:

RewriteEngine On 
RewriteRule ^v/([0-9a-f]+)/([^/.]+\.(png|jpe?g|gif))$ /view?key=$1&img=$2 [L] 
+0

後期編輯以添加(格式化) – user2619443

+0

@ user2619443目前尚不清楚的是,「重點」部分還可以包含字母,看到上面的編輯 –