首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查php中是否开启了mod_rewrite?

问如何检查php中是否开启了mod_rewrite?
EN

Stack Overflow用户
提问于 2012-01-27 00:25:42
回答 15查看 274.3K关注 0票数 151

我想知道是否可以检查PHP.中的Apache和IIS上是否启用了mod_rewrite

存在用于IIS的ModRewrite。检查它,here。

所以,我正在寻找一个在Apache和IIS上检查mod_rewrite的PHP脚本。

有没有人知道或者会写这样的脚本?

特别是对于微软的IIS。

谢谢!

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2012-01-27 00:30:53

如果你使用的是mod_php,你可以使用apache_get_modules()。这将返回一个包含所有已启用模块的数组,因此要检查是否启用了mod_rewrite,您可以简单地执行以下操作

代码语言:javascript
复制
in_array('mod_rewrite', apache_get_modules());

不幸的是,您最有可能尝试使用CGI来完成此任务,这使得它变得有点困难。

不过,您可以使用以下命令对其进行测试

代码语言:javascript
复制
strpos(shell_exec('/usr/local/apache/bin/apachectl -l'), 'mod_rewrite') !== false

如果上述条件的计算结果为true,则启用mod_write。

票数 125
EN

Stack Overflow用户

发布于 2012-01-27 00:28:29

复制这段代码并运行它来找出答案。

代码语言:javascript
复制
<?php
 if(!function_exists('apache_get_modules') ){ phpinfo(); exit; }
 $res = 'Module Unavailable';
 if(in_array('mod_rewrite',apache_get_modules())) 
 $res = 'Module Available';
?>
<html>
<head>
<title>A mod_rewrite availability check !</title></head>
<body>
<p><?php echo apache_get_version(),"</p><p>mod_rewrite $res"; ?></p>
</body>
</html>
票数 94
EN

Stack Overflow用户

发布于 2013-01-17 17:20:01

我喜欢Christian Roy's solution

代码语言:javascript
复制
###  .htaccess

<IfModule mod_rewrite.c>

    # Tell PHP that the mod_rewrite module is ENABLED.
    SetEnv HTTP_MOD_REWRITE On

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # The rest of your rewrite rules here

</IfModule>

然后,您可以签入PHP代码,以便

代码语言:javascript
复制
    array_key_exists('HTTP_MOD_REWRITE', $_SERVER);

不知道这是否也适用于IIS (我无法检查),但可能性很大。

票数 53
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9021425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档