我不确定这是否可行,但我想在 .htaccess 文件中编写一个重写规则(以及任何其他必要的指令),以便对于该文件夹中的每个 url,任何以 .txt 结尾的 url 都会被重写为以 .php 结尾的同名文件,但此外,在这种情况下,php 文件不会被执行,而是提供其内容(源代码)。
也就是说,“myfolder”是我想要应用这个的文件夹:
http://www.mydomain.com/myfolder/somescript.php => 将照常运行 somescript.php http://www.mydomain.com/myfolder/somescript.txt => 将返回 somescript.php 的源代码而不运行它
答案1
有两种方法可以实现这一点。
将每个
.php
文件符号链接到.txt
Apache 并添加指令,例如:AddType application/x-httpd-php-source .txt
在
<VirtualHost>
、<Location>
或<Directory>
块内。将其放在
<Location
> 内可能是最好的,这样 .txt 文件就不会在全局范围内与 PHP 源相关联。使用重写规则,例如:
RewriteRule ^(/myfolder/.+)\.txt $1.php [H=application/x-httpd-php-source]
(来源:http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_h- 略有修改)
使用此选项,请确保调用的目录中不存在其他文件,
.txt
否则它们将以 x-httpd-php-source 的内容类型发送。如果是这种情况,您可能需要调整正则表达式。