[英]Apache - How can I run a PHP script when opening HTML files?
我在一个网站上工作,该网站在Windows上的Apache服务器上运行(至少目前是这样)。 我的网站目录包含HTML和PHP文件。 这个想法是将可访问的网页作为HTML文件,并且每当我需要使用动态内容时,我都会使用Javascript和AJAX请求,以便从服务器请求我需要的内容。 将向PHP脚本发出AJAX请求,该脚本具有专用于它们的目录。 因为我想将所有内容组织在自己的单元中,所以这就是我这样做的方式(我尽量避免使用内联PHP)。
公用HTML文件不需要任何特殊设置。 但是,当涉及到管理员专用的HTML文件时,我想对它们做一些非常具体的事情。 我不想编写一些内联PHP代码来在管理员网页(HTML文件)上对用户进行管理员身份验证,而是希望在用户尝试打开管理员特定的HTML文件时执行身份验证脚本,以检查用户是否可以打开文件。
简而言之,这是我的问题: 打开HTML文件时如何运行PHP脚本? 我需要在Apache服务器上进行哪种配置,还是可以简单地以某种方式利用PHP?
您可以尝试使用iframe
/ embed
代码,
要么:
<html>
<head>
<script src="js/jquery.min.js"></script>
<script>
$(document).ready(function(){
$.ajax({
url: 'php_File_with_php_code.php',
type: 'GET',
data: 'parameter=some_parameter',
success: function(data) {
$('#thisdiv').html(data);
}
});
});
</script>
</head>
<body>
<div id="thisdiv"></div>
</body>
</html>
如果您提供静态HTML文件,则不能阻止用户不使用PHP之类的编程语言(或.htaccess
)来访问它。 但是,有多种方法可以处理您的情况:
.htaccess
。 .htaccess
是apache服务器身份验证配置文件。 您可以使用它来阻止用户访问您的网站(因此,根本无法访问HTML文件)。 尝试访问该页面时,将显示一个弹出窗口,用户必须输入其凭据。 它完全独立于您的业务逻辑,必须在.htpasswd
文本文件中设置允许的用户。 无法将现代的依赖数据库的用户管理与.htaccess
服务器身份验证一起使用。 使用此解决方案,您也不能使用HTML表单登录。我仅建议将此解决方案用于测试目的,而不建议用于现代网站。 如果您的PHP后端是可靠构建的,我将寻求解决方案1
。 如果您正确检查了后端界面上用户的输入,则用户无法对HTML进行任何操作。 这意味着,您可以提供所有HTML,但是在加载数据之前不向用户显示它。 您可以在微调器正在加载时显示它。 这是一些基本代码:
JavaScript(jQuery):
$(document).ready(function() {
$.ajax({
url: 'administration.php',
method: 'GET'
success: function(response) {
$('input.username').val(response.username);
// ( ... )
$('.administration').fadeIn('fast');
},
error: function() {
window.location.href = 'index.php';
}
});
});
HTML:
<body>
<div class="administration">
<label>Username
<input type="text" class="username" />
</label>
</div>
</div>
CSS:
.administration {
display: none;
}
您可以简单地将服务器(APACHE)配置为将具有.html扩展名的文件视为常规PHP文件。 方法如下:如果项目根目录中没有.htaccess文件,请创建它。 然后在.htaccess文件中添加以下行:
# TELLS APACHE TO HANDLE ALL FILES WITH .html or .htm EXTENSIONS AS PHP FILES.
AddHandler x-httpd-php .html .htm
但是,根据您的服务器,上述操作可能无效。 在这种情况下,您可以尝试以下方法之一:
# TELLS APACHE TO HANDLE ALL FILES WITH .html or .htm EXTENSIONS AS PHP FILES.
AddHandler php-script .php .html .htm
或这个:
# TELLS APACHE TO HANDLE ALL FILES WITH .html or .htm EXTENSIONS AS PHP FILES.
AddType application/x-httpd-php .htm
AddType application/x-httpd-php .html
但是,第一个变体很可能会为您工作。 我希望这有帮助。 祝你好运,我的朋友。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.