所以我做了一个网站,允许用户创建自己的网站,像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