2

PHP 5.4、Zend Studio、Zend-Serverを使用しています。

このURIを使用すると、404エラーが発生します。

http://localhost/MyExample/public/index.php

しかし、このuriを使用すると、表示する適切なページが表示されます。

http://localhost/MyExample/public/index.php/

これらのウリはどちらも同じだと思います。

.htaccessファイルは次のとおりです。

RewriteEngine On  
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*)$ - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]

index.phpコードは次のとおりです。

<?php

/**
* This makes our life easier when dealing with paths. Everything is relative
* to the application root now.
*/
chdir(dirname(__DIR__));

// Setup autoloading
require 'init_autoloader.php';

// Run the application!
Zend\Mvc\Application::init(require 'config/application.config.php')->run();
4

1 に答える 1

1

注:回答として前のコメントを追加する

これは正しい動作です。入力時にルーターに渡されるURIには、がhttp://localhost/index.php含まれます"index.php"

ルートマッチングがないため"index.php"、ZendFramework2によって404エラーが表示されます。

"/"または"/index.php/"を使用すると、ルーターが一致するパスが空になるため、 ZendSkeletonApplicationのデフォルト"home"ルートが一致するようになります。

于 2013-02-25T14:47:38.057 に答える