是否可以使用htaccess或类似的方法在每个html文件上运行php代码?


Is it possible to run a php code on every html file using htaccess, or similar?

所以我做了一个网站,允许用户创建自己的网站,像wyysiswyg编辑器等东西。当他们注册时,他们会得到一个url,比如user.site.com他们可以创建文件,文件夹,上传文件等等,他们可以创建和编辑HTML文件,例如,如果有人创建了index.html = user.site.com/index.html,他们可以用我的网站工具编辑,并通过user.site.com/index.html访问它,我只是想知道我是否可以在他们创建的所有HTML文件中添加PHP代码,而无需向文件添加内容。像

echo 'Created with AppName';

将自动添加到每个用户创建的所有HTML文件中,而不是实际在里面,htaccess可以做到这一点吗?

我想你问的是你想让你的web服务器处理.htm.html文件的php代码。对吗?如果是这样,您可能希望在.htaccess文件中执行以下操作:

AddHandler x-httpd-php .html .htm 

简单地说,这将告诉Apache为php代码(如果有的话)处理。html和。htm文件。

http://httpd.apache.org/docs/2.2/mod/mod_mime.html addhandler

如果您有权限编辑php.ini,您可以使用auto_prepend_file。这是无法从.htaccess访问的,但可以实现您要做的事情:

http://www.php.net/manual/en/ini.core.php ini.auto-prepend-file

从手册:

指定在主文件之前自动解析的文件名。包含文件,就像使用require函数调用它一样,因此使用include_path。

特殊值none禁用自动添加。

这将允许您在每个请求之前运行指定的PHP文件。

注意,如果你想在HTML文件上运行这个,而不仅仅是PHP,你还需要设置一个处理程序来通过PHP运行这些文件,如上所述:

AddType application/x-httpd-php .html

只是用户发送的所有页面都是基于另一个php文件旋转的。

假设用户(假设用户名是john)发送了文件foo.html

访问文件foo.php需要转到这样的URL:

john.site.com/partners.php?path=foo.html [fixed]

使用.htaccess (mod rewrite),您可以修改URL,使其看起来像这样:

john.site.com/foo.html

只是子域可以访问php文件partners.php(应该是根)

mod_rewrite/. htaccess :http://www.sitepoint.com/guide-url-rewriting/


[编辑]

的例子:

. htaccess:

RewriteEngine On
RewriteRule ^/([A-Za-z0-9'/'-_. ]+)$ /partners.php?path=$1
PHP代码:

include('youscript.php');
//Get username
$tmp = $_SERVER['HTTP_HOST'];
$tmp = explode('.',$Q);
$username = $test[0];
//Print file in page
if(isset('users/'.$username.'/'.$_GET['path'])){
  echo file_get_contents('users/'.$username.'/'.$_GET['path']);
}

结果:

paul.site.com/partners.php?path=mypage.html

paul.site.com/mypage.html


john.site.com/partners.php?path=folder1/mypage.html

john.site.com/folder1/mypage.html


william.site.com/partners.php?path=css/style.css

paul.site.com/css/style.css

你是说像使用include命令吗?

试试这个:

<?php
include 'yourphpscript.php';
?>

更多信息在这里:

http://php.net/manual/en/function.include.php