如何在PHP CGI上检查mod_rewrite

我在共享主机上,
PHP被作为CGI脚本安装,这就是我无法找到mod_rewrite是否启用的问题

注意:我没有任何根级别访问权限,所以我对Shell不太了解.

我尝试过以下方法:
1)在phpinfo()检查,我知道这是在PHP-CGI中寻找的错误位置.

 
2)我试过从apache_get_modules获取它,其中agi在PHP-CGI中不起作用:(
3)我试过:

if (strpos(shell_exec('/usr/local/apache/bin/apachectl -l'), 'mod_rewrite') !== false) {
    // mod_rewrite is enabled
}

这是要求apache的路径,我没有这个信息SHELL不能回复我和$_SERVER什么也没有.
4)我已经在.htaccess中使用RewriteEngine On进行了检查,之后我的网站正在抛出500内部服务器错误,可能是因为RewriteEngine不存在,但是我需要这个是为了显示某人.

任何机构都知道如何检查这个完成.

谢谢

最佳答案 使用PHP CGI,没有简单的方法可以确定服务器上是否有mod_rewrite可用.

因此,您需要通过对服务器进行测试调用来找出它.您可以对此方法使用以下步骤,

>在服务器上创建名为mod_rewrite_test的目录.
>使用以下代码在此目录中添加.htaccess文件,

< IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase / mod_rewrite_test
 RewriteRule.* mod_rewrite_test.txt
 < / IfModule>

一个.第一行告诉apache只有当mod_rewrite可用时才执行下面的代码,
湾第二行启用重写引擎,
C.第三行设置重写基目录路径,该路径来自DOCUMENT_ROOT
d.第四行将mod_rewrite_test.txt文件的内容返回给发送到mod_rewrite_test目录的任何请求.
>在同一目录中创建名为mod_rewrite_test.txt的文件.在此文件中写好并保存.
>现在,在php脚本中使用CURL,调用类似的URL,

http://www.your-domain.com/mod_rewrite_test/test.php
并检查响应.

因此,根据我们的.htaccess代码,如果mod_rewrite处于活动状态且在服务器上工作,
即使test.php文件不存在,它也会返回mod_rewrite_test.txt文件的内容,即ok.

否则,它将返回404 – 找不到页面错误.

点赞