如何使用.htaccess添加文件类型扩展名?

时间:2015-11-29 16:04:17

标签: apache .htaccess routes

我想将http://example.com/STRING之类的链接映射到http://example.com/STRING.png,如何使用.htaccess进行映射?

3 个答案:

答案 0 :(得分:2)

在htaccess中尝试以下代码:

RewriteEngine on


RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.png -f

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

答案 1 :(得分:2)

尝试:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(.*)$
RewriteCond %{DOCUMENT_ROOT}/%1.png -f
RewriteRule ^(.*)$ /%1.png [L]

答案 2 :(得分:1)

理论上(我还没有测试过),这个应该重定向到目录中的第一个文件,该文件由给定的字符串(http://example.com/STRING)和1到4个字母/数字扩展名组成。

例如,这些是您的文件:

.htaccess
file.php
img.jpg
anotherimg.gif
doc.html

如果您请求example.com/doc,它会将您重定向到example.com/doc.html example.com/anotherimg重定向到example.com/anotherimg.gif

htaccess的:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]*)$ file.php?name=$1 [L]

file.php:

$files = scandir('./');

foreach($files as $file)
{
    if (preg_match(
        '/^'. $_GET['name'] .'.[a-zA-Z0-9]{1,4}/',
        $file
    )) {
        header("Location: $file");
        break;

    } else continue;

}