2013-01-02 89 views
2

我想爲我的網站上的圖像上傳器做一個.htaccess重寫,但對於我嘗試過的所有教程,我無法正常工作。幫助.htaccess文件夾重寫

目前,該代碼我上傳圖片的文件夾: http://www.example.com/server/php/files/jkgh4f54.jpg

我想重寫,所以當你去這個網址:http://www.example.com/jkgh4f54.jpg它是從上述地點的圖像。

有什麼想法?正如我所提到的,到處都有關於類似的東西的教程很多,但我還沒有能夠適應他們到目前爲止的工作。

當前的.htaccess:

RewriteEngine On 
RewriteCond %(REQUEST_FILENAME} !-f [OR] 
RewriteCond %(REQUEST_FILENAME} !-d 
RewriteRule ^[a-zA-Z0-9]+\.(jpe?g|png|gif|bmp)$ /server/php/files/$0 [L] 
RewriteRule ^([a-zA-Z0-9]+)$ index.php?code=$1 //For URL Shortener 
ErrorDocument 404 http://localhost/site.com/404.php 
+1

聽起來像要重定向,而不是重寫。關於如何做到這一點有很多問題。 – gSaenz

回答

1

使用此代碼,當用戶訪問http://example.com/h3h2js.jpg,他們會從http://example.com/server/php/files/h3h2js.jpg看到圖像,但在瀏覽器中的URL將保持相同:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f [OR] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^[a-zA-Z0-9]+\.(jpe?g|png|gif|bmp)$ /server/php/files/$0 [L] 

我已經測試了這段代碼徹底在Windows上完全安裝XAMPP。圖像名稱必須只包含任一種情況(a-z,A-Z,0-9)的字母數字字符,並且必須以jpg,jpeg,png,gif或bmp文件擴展名結尾。如果請求的圖像文件已存在於網站根目錄中,則不會發生重寫

+0

任何原因,這將無法在本地副本(XAMPP)上工作?我今晚不能在實際的域名上測試這個,但RewriteRule ^(。*)。(jpg | png | gif)$ http://localhost/site.com/server/php/files/$1 2美元產生了一個錯誤500.(http://也在那裏,但目前無法在評論中顯示)。 – Rhadley

+0

使它成爲現場環境並且不幸運。 http://www.example.com/jkgh4f54.jpg只是傳遞給我的404 ErrorDocument處理程序。 – Rhadley

+0

我會看看它(我還沒有真正測試過)。順便說一句,如果你把它放在註釋中,那麼你可以在註釋中張貼代碼。 – shea

0

嘗試:

RewriteEngine on 
RewriteRule ^(.*)\.jpg$ http://site.com/server/php/files/$1\.jpg [R=301,L] 
+0

不幸的是,這不適用於現場環境。 – Rhadley

+0

檢查我的編輯xD – 2013-01-03 06:08:30

+0

哦!我覺得我們更接近!但是,您的編輯產生了重定向循環:http://site.com/server/php/files/server/php/files/server/php/files/server/php/files/server/php/files/server/php/文件/服務器/ PHP /文件/服務器/ PHP /文件/服務器/ PHP /文件/服務器/ PHP /文件/服務器/ PHP /文件/服務器/ PHP /文件/服務器/ PHP /文件/服務器/ PHP /文件/服務器/ PHP /文件/服務器/ PHP /文件/服務器/ PHP /文件/服務器/ PHP /文件/服務器/ PHP /文件/服務器/ PHP /文件/服務器/ PHP /文件/服務器/ PHP /文件/ altatg6。 jpg – Rhadley