使用url rewrite选择没有文件名的文件

时间:2014-10-27 21:18:39

标签: php .htaccess url rewrite

如何在不使用htaccess提供文件名的情况下选择文件夹中的文件,例如

www.domainname /文件夹/

而实际链接是

www.domainname /文件夹/ filename.pdf

(注意)我的文件夹中只有一个pdf文件。

3 个答案:

答案 0 :(得分:0)

理论上,您应该能够在www.domainname.com/folder目录中创建.htaccess文件,并向其添加DirectoryIndex filename.pdf

如果这不起作用,你可以在目录中创建一个index.php文件并放入:

<?php
   header( 'Location: filename.pdf' ) ;
?>

答案 1 :(得分:0)

如果您不想使用.htaccess或基于PHP的解决方案,可以创建一个包含以下内容的简单index.html文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>
<head>
<meta http-equiv="refresh" content="0; URL=http://www.example.com/somefile.pdf" />
</head>
<body>
    <!-- optional, just to have something in the body -->
    <p><a href='http://www.example.com/somefile.pdf'>download me!</a></p>
</body></html>

解释:如果服务器激活了自动索引(大多数都有),它会自动处理index.htmlindex.php等文件作为目录的索引文件,并在只有文件夹名称时传送内容请求。

因此,我们在这里使用的是“隐身”index.html与元重定向相结合,以实现即时重定向。

小劣势:客户端会在短时间内看到页面内容。如果您不喜欢它,请使用服务器端解决方案。但你也可以显示一些文字,例如“你被重定向到文档,请等一下......”。

答案 2 :(得分:-1)

你不需要htaccess。仅使用php列出该目录中的现有文件。把php代码放在index.php

$files1 = scandir($dir);
print_R($files1);

没有问题需要解决。 index.php是大多数Web服务器中的默认文件。如果文件总是被调用,那么在目录中只需要在目录中创建一个名为index.php的文件并选择文件?