Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Błąd Undefined index: HTTP_X_URL_BEFORE_REWRITE
Forum PHP.pl > Forum > PHP > Frameworki
PROGer
Mam pewną aplikację, która została napisana w Zendzie. Do jej prawidłowej obsługi musiałem ściągnąć i zainstalować moduł mod_rewrite (ISAPI_Rewrite3_Lite). Gdy odpalam stronę startową aplikacji index.php pojawia mi się taki oto komunikat:

  1. PHP Notice: Undefined index: HTTP_X_URL_BEFORE_REWRITE in C:\Inetpub\wwwroot\test\library\Zend\Controller\Request\Http.php on line 326 PHP Notice: Undefined index: HTTP_X_URL_BEFORE_REWRITE in C:\Inetpub\wwwroot\test\library\Zend\Controller\Request\Http.php on line 326


Jest on związany ściśle z linijką w pliku index.php o następującej treści:

  1. echo $ctrl->dispatch();


zmienna $ctrl to:
  1. $ctrl = Zend_Controller_Front::getInstance();
  2. $ctrl->setBaseUrl('/test');
  3. $ctrl->throwExceptions(true);
  4. $ctrl->registerPlugin(new DPCPluginAuth($auth, $acl));
  5. $ctrl->setControllerDirectory($config->controllers->toArray());


Linijka 326 biblioteki Zenda, której się czepia to:
  1. $requestUri = $_SERVER['HTTP_X_URL_BEFORE_REWRITE'];


a całość funkcji to:

  1. public function setRequestUri($requestUri = null)
  2. {
  3. if ($requestUri === null) {
  4. if (isset($_SERVER['HTTP_X_REWRITE_URL'])) { // check this first so IIS will catch
  5. $requestUri = $_SERVER['HTTP_X_URL_BEFORE_REWRITE'];
  6. } elseif (isset($_SERVER['REQUEST_URI'])) {
  7. $requestUri = $_SERVER['REQUEST_URI'];
  8. } elseif (isset($_SERVER['ORIG_PATH_INFO'])) { // IIS 5.0, PHP as CGI
  9. $requestUri = $_SERVER['ORIG_PATH_INFO'];
  10. if (!empty($_SERVER['QUERY_STRING'])) {
  11. $requestUri .= '?' . $_SERVER['QUERY_STRING'];
  12. }
  13. } else {
  14. return $this;
  15. }
  16. } elseif (!is_string($requestUri)) {
  17. return $this;
  18. } else {
  19. // Set GET items, if available
  20. $_GET = array();
  21. if (false !== ($pos = strpos($requestUri, '?'))) {
  22. // Get key => value pairs and set $_GET
  23. $query = substr($requestUri, $pos + 1);
  24. parse_str($query, $vars);
  25. $_GET = $vars;
  26. }
  27. }
  28.  
  29. $this->_requestUri = $requestUri;
  30. return $this;
  31. }


Proszę o pomoc w rozwiązaniu problemu. Co to za konunikat, z jakiego powodu się pojawia, czy spotkaliście się już z takim?

Pyton_000
zmień to po prostu na HTTP_X_REWRITE_URL
PROGer
Jak zmienie w taki sposób jak podałeś, mod_rewrite zachowa się tak jakby go nie było ... tzn. w adresie będzie pojawiala się cała ścieżka do pliku zamiast tylko np. index.php.
Skąd ten błąd? Może tyczyć się oprogramowania mod_rewrite z którego korzystam? To jedyne które udało mi się skonfigurować.
viking
Jeżeli aplikacja nie jest jakoś tragicznie napisana (adresy na sztywno) to wystarczy że dodasz http://adres/index.php i wszystkie linki będą działać bez rewrite.
A swoją drogą co chcesz osiągnąć tą funkcją? Bo wszystko albo w helperze Zend_View_Helper_ServerUrl albo w obiekcje Request.
PROGer
To aplikacja z odzysku. Chciałem ją uruchomić w taki sposób aby zawsze przekierowywala na index.php bez podawania w URL jawnie ścieżek do obecnie aktywnych podstron. Mało tego bez rewrite widoczne są parametry w adresie URL np gdy ze strony X szukam czegoś i po wysłaniu formularza przekierowuje mnie na stronę Y
Nie ładnie to teraz wygląda ...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.