2

因此,我创建了一个网站,允许用户使用所见即所得编辑器等内容创建自己的网站。当他们注册时,他们会得到一个类似 user.site.com 的网址,他们可以创建文件、文件夹、上传文件等,他们可以创建和编辑 html 文件,例如,如果有人创建了 index.html = user.site.com/index.html,他们可以使用我的站点工具对其进行编辑,并通过 user.site.com/index.html 访问它,我只想知道是否我可以将 php 代码附加到他们创建的所有 html 文件中,而无需实际向文件中添加内容。喜欢

echo '使用 AppName 创建';

会自动添加到每个用户创建的所有 html 文件中,而不是实际在其中,htaccess 可以这样做吗?

4

4 回答 4

1

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

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

要访问该文件foo.php,需要访问这样的 URL:

john.site.com/partners.php?path=foo.html [固定的]

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

john.site.com/foo.html

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

mod_rewrite/.htaccesshttp ://www.sitepoint.com/guide-url-rewriting/


[编辑]

例子:

.ht 访问:

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

于 2013-05-06T22:39:15.880 回答
1

我认为您要问的是您希望拥有 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

于 2013-05-06T22:41:07.313 回答
1

如果您有权编辑 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
于 2013-05-06T23:10:06.413 回答
0

你的意思是像使用包含命令?

尝试这个:

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

更多信息在这里:

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

于 2013-05-06T22:35:02.837 回答