使用url重写选择一个没有文件名的文件


Pick a file without file name using url rewrite

如何在不使用htaccess(如)指定文件名的情况下选择文件夹中的文件

www.domainname/folder/

而实际链路是

www.domainname/folder/filename.pdf

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

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

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

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

如果您不想使用.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与元重定向相结合,以引起即时重定向。

小缺点:客户端会在短时间内看到页面内容。如果您不喜欢,请使用服务器端解决方案。但你也可以显示一小段文字,比如"你正在被重定向到文档,请稍候…"。

您不需要为此使用htaccess。仅使用php列出该目录中的现有文件。将php代码放入index.php

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

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