我正在使用共享网络托管服务。运行 phpinfo,我可以看到服务器 API 显示 CGI/FastCGI 而不是 Apache 2 处理程序。
在这篇文章中: http: //docs.joomla.org/Should_PHP_run_as_a_CGI_script_or_as_an_Apache_module%3F
它说“如果您的服务器配置为将 PHP 作为 Apache 模块运行,那么您可以选择使用 php.ini 或 Apache .htaccess 文件,但是,如果您的服务器以 CGI 模式运行 PHP,那么您将只有选择在本地使用 php.ini 文件来更改设置,因为 Apache 不再完全控制 PHP。
我认为我创建的 .htaccess 中的重写规则在 CGI 模式下运行时运行良好,这真的很奇怪。为什么会这样?
问题不在于
.htaccess
文件中的 Apache 重写规则在将 PHP 作为 CGI 与 Apache 模块运行时不起作用。.htacess
只是当它作为 CGI 运行时,您不能使用该文件来设置 PHP 值。相反,您必须有一个单独的 php.ini 文件,其中更改了您的设置。在我自己的共享主机帐户中,将 PHP 作为 CGI 运行,我使用 FastCGI 并在我的.htaccess
文件中有以下内容:然后在我的帐户
/cgi-bin/
目录中,我放置包含以下内容的myphp.fcgi
脚本chmod 755
:我的文件中仍有一个
<IfModule mod_rewrite.c>
部分.htaccess
来处理将一些旧 URI 路径重写为新 URI 结构,以维护缓存在搜索引擎中的旧链接。