apache,httaccess:编写一条规则,使xxxxx.txt 表示“返回xxxxx.php 的源代码”

apache,httaccess:编写一条规则,使xxxxx.txt 表示“返回xxxxx.php 的源代码”

我不确定这是否可行,但我想在 .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

有两种方法可以实现这一点。

  1. 将每个.php文件符号链接到.txtApache 并添加指令,例如:

    AddType application/x-httpd-php-source .txt
    

    <VirtualHost><Location><Directory>块内。

    将其放在<Location> 内可能是最好的,这样 .txt 文件就不会在全局范围内与 PHP 源相关联。

  2. 使用重写规则,例如:

    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 的内容类型发送。如果是这种情况,您可能需要调整正则表达式。

相关内容