我在共享主机上,
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 – 找不到页面错误.