如何在PHP CGI上检查mod_rewrite


How to check for mod_rewrite on PHP CGI

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

Note: I don't have any root level access so i can't much do with 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内部服务器错误,可能是因为重写引擎不在那里,但我需要写这篇文章来向某人展示。

任何人都知道如何检查完成这项工作。

感谢

使用PHP CGI,没有简单的方法可以确定服务器上是否有mod_rewrite。

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

  1. 在服务器上创建一个名为mod_rewrite_test的目录。

  2. 在该目录中添加.htaccess文件,并使用以下代码

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

    a。第一行告诉apache只有在mod_rewrite可用时才执行下面的代码,
    b.第二行启用重写引擎,
    c.第三行设置重写基目录路径,该路径来自DOCUMENT_ROOT
    d.第四行将mod_rewrite_test.txt文件的内容返回给发送到mod_rewrite_test目录的任何请求。

  3. 在同一目录中创建一个名为mod_rewrite_test.txt的文件。将ok写入该文件并保存。

  4. 现在,在php脚本中使用CURL,调用类似于的URL

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

    因此,根据我们的.htaccess代码,如果mod_rewrite处于活动状态并在服务器上工作,它将返回CCD_ 13文件即CCD_。

    否则,它将返回404-未找到页面错误。

要检查mod_rewrite模块是否已启用,请在服务器的根文件夹中创建一个新的php文件。输入以下

echo phpinfo();

并在浏览器中访问文件。