用于检查服务器上是否允许.htaccess的php脚本(函数)
正如标题所说,我正在寻找一个PHP函数来检查您是否可以在服务器上使用.htaccess文件 我应该测试什么 备选案文1: 如果安装了修改重写模块,可能会发生这种情况 备选案文2: 检查“httpd.conf”中是否显示“AllowOverride None”用于检查服务器上是否允许.htaccess的php脚本(函数),php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,正如标题所说,我正在寻找一个PHP函数来检查您是否可以在服务器上使用.htaccess文件 我应该测试什么 备选案文1: 如果安装了修改重写模块,可能会发生这种情况 备选案文2: 检查“httpd.conf”中是否显示“AllowOverride None” 谢谢您的建议,代码也会有帮助;) 使用php脚本创建一个.htaccess文件,为某个文件写入重定向,然后调用该文件并检查是否重定向。应该是检查.htaccess是否有效的最基本方法之一 编辑:未测试 <?php $html1 = "
谢谢您的建议,代码也会有帮助;) 使用php脚本创建一个.htaccess文件,为某个文件写入重定向,然后调用该文件并检查是否重定向。应该是检查.htaccess是否有效的最基本方法之一 编辑:未测试
<?php
$html1 = "test.html";
$html2 = "test2.html";
$htaccess = ".htaccess";
$string1 = "<html><head><title>Hello</title></head><body>Hello World</body></html>";
$string2 = "<html><head><title>Hello</title></head><body>You have been redirected</body></html>";
$string3 = "redirect 301 /test.html /test2.html";
$handle1 = fopen($html1, "w");
$handle2 = fopen($html2, "w");
$handle3 = fopen($htaccess, "w");
fwrite($handle1, $string1);
fwrite($handle2, $string2);
fwrite($handle3, $string3);
$http = curl_init($_SERVER['SERVER_NAME'] . "/test.html");
$result = curl_exec($http);
$code = curl_getinfo($http, CURLINFO_HTTP_CODE);
if($code == 301) {
echo ".htaccess works";
} else {
echo ".htaccess doesn't work";
}
?>
在.htaccess中,简单地说:
SetEnv HTACCESS on
然后,在PHP脚本中,在$\u服务器中查找它:
if ( !isset($_SERVER['HTACCESS']) ) {
// No .htaccess support
}
看,检查mod_重写是没有帮助的。您可以不安装它,但仍有.htaccess文件。请查看您的web主机文档。如果您具有.htaccess重写功能,我访问/研究过的每个web主机都会在某处通知您。如果他们不宣传这是一种好处,那么很有可能(因为现在大多数ppl都希望获得这种特权)他们不会提供这种好处feature@JTSmith我正在尝试编写一个PHP函数来自动检查这一点。这是我的需求脚本的一部分,用于检查服务器上是否启用了所有必要的功能,以使每个服务器上的应用程序都具有完整的功能。至少在使用mod_php时,您还可以使用virtual()
执行(伪造)http请求。@ThiefMaster如何伪造该http请求?(示例代码)please@ing. Michal Hudak你真的需要开始把事情弄清楚一点,你不能只是发布一些问题,然后期望每个人都为你编写完整的代码。@Ahatius我正在自己设置函数。不要求整体解决问题。我以前从未使用过virtual()
函数。我知道语法,但不知道如何将它与curl()
@Mickle一起使用,所以基本上你可以把任何东西放在那里,然后检查它是否被设置为打开?例如:SetEnv SomeVariable on
,然后检查是否设置了$\u服务器['SomeVariable']
?顺便说一句,而不是!i设置
使用空
<代码>!isset
不起作用。你为什么这么认为!isset()将不起作用?到目前为止,它对我非常有效。不过,在这种情况下,可以使用empty,正如您所说的。