Kullanıcıların index.php sörf yaparken davayı çözmek için nasıl

6 Cevap php

Bir kullanıcı sörf eğer Zend çerçevede, http://base/url/index.php yerine http://base/url ve açıkça, MVC kullanarak, sistem gerçek baz url düşünüyor http://base/url/index.php/ ve göre Bu sistemdeki tüm URL'leri hesaplar.

So, if I have a controller XXX and action YYY The link will be
http://base/url/index.php/XXX/YYY which is of course wrong.

Şu anda index.php bir satır ekleyerek bu çözüyorum:

$_SERVER["REQUEST_URI"]=str_replace('index.php','',$_SERVER["REQUEST_URI"]);

Bunu çözmek için ZF içinde yerleşik bir yol olup olmadığını merak ediyorum.

6 Cevap

Peki gerçekten bu çözmek istiyorum nasıl bağlıdır. Eğer Zend çerçeveleri açıkça kamusal / dizininde bir dosya başvurusu olmayan her istek için yeniden yönlendirilen ön kontrolör desen, üzerine inşa Bildiğiniz gibi index.php. Yani temelde çeşitli şekillerde bu çözebilir:

  1. Edit the .htaccess file (or server configuration directive) to rewrite the request to the desired request:
    • RewriteRule (. * Index.php) / hata / yasak? Req = $ 1 / / hata denetleyicisi yasak eylem yeniden yazın.
    • RewriteRule index.php / index / / ana denetleyicisi ve eylem isteği Rewrite
  2. karim79 tarafından önerilen gibi önyükleyici içinde bir statik yol eklemek.

Mod_rewrite kullanın. Böyle bir şey yapmak gerekir:

RewriteRule ^index.php/(.*)$ /$1 [r=301,L]

Bunu yapmak için bir yol kullanmanız gerektiğini sanmıyorum.

Bu yolla çözülmesi gereken bir genel sorun naziksiniz.

Daha iyi daha iyi bir & sunacak, sizin. Htaccess bunu yapmak olmalıdır bir hata sayfasına veya dizine gibi istediğiniz yere kullanıcıyı yönlendirmek için kolay bir yoldur.

İşte mod_rewrite için dokümantasyon sayfası

Ben Zend Framework kullanarak bu sorunla karşı karşıya hiç. sadece index.php dosyasına bağlantı yoktur. işte bu. sizin kullanıcılara uygulamanızın adresini vererek zaman ve sadece http://base/url/ gitmek için onlara

kullanıcı girdiğinde http://base/url/ onun istek URI base/url ve. htaccess dosyası Maçında index.php isteği, ancak istek IS {[(1) }]. Eğer isteği 'index.php' kaldırmak gerekmez. orada değil çünkü.

Eğer linkleri ve formlar için URL'leri oluşturmak için çalışıyoruz ve ... zaman, bağlantıları oluşturmak için yerleşik url () görünümü yardımcı kullanın. gibi bu:

// in some view script
<a href="<?php
  echo $this->url( array('controller'=>'targetController','action'=>'targetAction') );
         ?>" >click</a>

bağlantı hakkında endişelenmeyin. Zend sizin için bir URL oluşturur.

Bu bakmak yolu PHP ile çalışan bir web sitesi var ve bir kullanıcı http://site/index.aspx giderse o zaman bir 404 göndermek olduğunu ifade etti.

Index.php teoride var olsa bile, o yüzden ben de bu durumda bir 404 göndermek istiyorsunuz benim uygulamada geçerli bir URL değil.