11

私の開発環境では、php5.4のWeb組み込みWebサーバーを使用していますが、.htaccessが正しく機能していないようです。そのサーバーのドキュメントが見つかりません。誰かがhtaccessとmod_rewriteをapacheのように使用できるかどうか教えてもらえますか?

どうもありがとうございます

4

2 に答える 2

12

私のコメントで述べたように、現在のディレクトリはデフォルトであなたのウェブルートです。また、このWebサーバーはをサポートしていません.htaccess

あなたはここであなたの問題についての良い説明を見つけるでしょう。

サーバーを実行する

デフォルトでは、現在のディレクトリがWebルートであり、ここにあるファイルをリクエストして、通常の方法でPHPを実行できるようになりました。

また

ApacheRewriteのようなルーティングリクエスト

私が探していた直接の機能の1つは、すべての着信要求をindex.phpにリダイレクトする機能でした。これは、通常、.htaccessファイルを使用して行います。このWebサーバーはそれらをサポートしていません(私の親友のJoshはかなり近いものを作成しましたが)が、ルーティングファイルはサポートしています。

于 2012-09-24T11:58:40.757 に答える
0

私はこれをやっているファンではありませんが、ソフトウェアMagentoによって、これが実際に行われているのを見てきました。

/**
 * Parse .htaccess file and apply php settings to shell script
 *
 */
protected function _applyPhpVariables()
{
    $htaccess = $this->_getRootPath() . '.htaccess';
    if (file_exists($htaccess)) {
        // parse htaccess file
        $data = file_get_contents($htaccess);
        $matches = array();
        preg_match_all('#^\s+?php_value\s+([a-z_]+)\s+(.+)$#siUm', $data, $matches, PREG_SET_ORDER);
        if ($matches) {
            foreach ($matches as $match) {
                @ini_set($match[1], str_replace("\r", '', $match[2]));
            }
        }
        preg_match_all('#^\s+?php_flag\s+([a-z_]+)\s+(.+)$#siUm', $data, $matches, PREG_SET_ORDER);
        if ($matches) {
            foreach ($matches as $match) {
                @ini_set($match[1], str_replace("\r", '', $match[2]));
            }
        }
    }
}

https://github.com/OpenMage/magento-mirror/blob/1b7c8107492ddea9d480152bdc81908befd0795c/shell/abstract.php#L110-L134

これは、PHP設定.htaccessをPHP CLIスクリプトに適用するためのものですが、PHPの組み込みWebサーバーでもうまく機能するはずです。

于 2018-06-06T07:20:40.123 に答える