私の開発環境では、php5.4のWeb組み込みWebサーバーを使用していますが、.htaccessが正しく機能していないようです。そのサーバーのドキュメントが見つかりません。誰かがhtaccessとmod_rewriteをapacheのように使用できるかどうか教えてもらえますか?
どうもありがとうございます
私のコメントで述べたように、現在のディレクトリはデフォルトであなたのウェブルートです。また、このWebサーバーはをサポートしていません.htaccess
。
あなたはここであなたの問題についての良い説明を見つけるでしょう。
サーバーを実行する
デフォルトでは、現在のディレクトリがWebルートであり、ここにあるファイルをリクエストして、通常の方法でPHPを実行できるようになりました。
また
ApacheRewriteのようなルーティングリクエスト
私が探していた直接の機能の1つは、すべての着信要求をindex.phpにリダイレクトする機能でした。これは、通常、.htaccessファイルを使用して行います。このWebサーバーはそれらをサポートしていません(私の親友のJoshはかなり近いものを作成しましたが)が、ルーティングファイルはサポートしています。
私はこれをやっているファンではありませんが、ソフトウェア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]));
}
}
}
}
これは、PHP設定.htaccess
をPHP CLIスクリプトに適用するためのものですが、PHPの組み込みWebサーバーでもうまく機能するはずです。