RewriteRule是否真的透明重写?

时间:2014-10-12 15:32:51

标签: apache .htaccess mod-rewrite

当我使用浏览器访问网址时:

http://home.fr/kcozs4ip/mypicture.jpg

使用此.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /                
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d                                       
    RewriteRule ^([^/]+)/([^/]+)$ http://home.fr/$1_$2 [L] 
</IfModule>

然后服务器将到达文件http://home.fr/kcozs4ip_mypicture.jpg

这很好:它有效,因为我的文件实际上是保存在这个地方的服务器上。

但是,在浏览器中,文件的下载文件名为kcozs4ip_mypicture.jpg,而不是名称mypicture.jpg

如何让浏览器将http://home.fr/kcozs4ip/mypicture.jpg视为文件名为mypicture.jpg的文件?

enter image description here

1 个答案:

答案 0 :(得分:1)

从目标网址中删除http://以避免重定向网址:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /                

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d                                       
    RewriteRule ^([^/]+)/([^/]+)$ $1_$2 [L] 
</IfModule