2015-06-01 19 views
6

Yii'de index.php'yi kaldırmak için Yii'deki seçeneği ayarladığımda 404 hatası alıyorum ve bu hata File does not exist: /var/live/var kayıt defterinde saklanıyor. Tarayıcımda bu hata The requested URL /var/decat/frontend/web/index.php was not found on this server. olsun, ancak dosya tam olarak bu konumda. Bunu açıklayabilirim, belge köküm /var/live ve dekat, conf dosyasında gösterildiği gibi bir takma addır.Yii2 url'den index.php'yi kaldırın

Bu url düzgün çalışıyor. http://130.211.165.180/decat/index.php/site/login ancak index.php'yi kaldırdığımda hata oluştuğunda. Conf dosyasında kurmak için tüm talimatları takip ettim. Bir .htaccess dosyası ile bile denedim. İşte benim conf dosyasından gelen bilgi. Böyle

Alias /decat /var/decat/frontend/web 

<Directory "/var/decat/frontend/web"> 
     # use mod_rewrite for pretty URL support 
     RewriteEngine on 
     # If a directory or a file exists, use the request directly 
     RewriteCond %{REQUEST_FILENAME} !-f 
     RewriteCond %{REQUEST_FILENAME} !-d 
     # Otherwise forward the request to index.php 
     RewriteRule . index.php 
     Options -Indexes FollowSymLinks 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
</Directory> 
+0

Yapılandırma tamam görünüyor. Apache servisini yeniden başlattın mı? – Viacheslav

+0

Yeniden başlattım ve şimdi –

+0

sorusunda gönderdiğim yeni hatayı alıyorum DocumentRoot'unuzun '/ var/live' olduğunu söylüyorsanız, neden Alias ​​'a/var/decat' yazdığınızı anlamıyorum. var/yaşamak için. Alias ​​/ decat/var/live/frontend/web 've ayrıca' ... ' – Viacheslav

cevap

6

RewriteBase /decat/RewriteEngine on sonra ekleyin ve yeniden apache yanlış olabilir:

ben olması gerektiğini düşünüyorum.

+0

çalışır. –

+0

Yardımı ile ilgili yardımlar Dünya problemi çözüldü! – Brainfeeder

3

Sen belirlesin URL Yöneticisi bileşeni:

'urlManager' => [ 
    'enablePrettyUrl' => true, 
    'showScriptName' => false, // Only considered when enablePrettyUrl is set to true 
], 

Resmi belgeler:

+0

nimetini atayabilirim. Bu, index.php'den kurtulduğunu ve –

+0

hatalarını aldığımda lütfen aldığınız hatayı anlatayım. –

+0

@GauravParashar Sorunun en başında hatadan bahsetti. – arogachev

0

Sanırım yanlış olan Apache konfigürasyonunuz ... Sadece okuduğum tek bir karakterin isteklerini yeniden yazmasını mı söylüyorsunuz?

RewriteRule ^/(.*) index.php/$1 [L] 

Ama değil apache uzman

+0

Bu hatayı "Dosya mevcut değil:/var/decat/frontend/web/site" ile aldım, web/index olmalıdır.php '' site' değil, ama bu apache servisini yeniden başlatmadan önce aldığım aynı hatadır –

+0

'Sitemi kullanmıyorum' cevabımın herhangi bir yerinde, neye atıfta bulunduğuna dair hiçbir fikriniz yok. – Blizz

+0

Sadece bunun hata olduğunu söylüyorum –

0

Sen benim app bu kullanıyorum

'urlManager' => [ 
    'class' => 'yii\web\UrlManager', 
    // Disable index.php 
    'showScriptName' => false, 
    // Disable r= routes 
    'enablePrettyUrl' => true, 
    'rules' => array(
      '<controller:\w+>/<id:\d+>' => '<controller>/view', 
      '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', 
      '<controller:\w+>/<action:\w+>' => '<controller>/<action>', 
    ), 
    ], 

olarak

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)\?*$ index.php?r=$1 [L,QSA] 

ve urlManager kural olarak .htaccess değişmelidir. ve işe yarıyor. benim url ayakkabılarım www.example.com/user/view?id=1

+0

Sunucudaki bu toplantıdan sonra mod_rewrite'i de etkinleştirmemiz gerekiyor. Terminale için "** ** AllowOverride none" 'sudo a2enmod Şimdi“/etc/apache2/apache2.conf”gidin sudo hizmet apache2 Tekrar başla yeniden o favori editörü ve değişim açmak bu komutları çalıştırın "** AllowOverride All **" değişikliklerinizi kaydedin ve Apache'yi tekrar yukarıdaki komutla yeniden başlatmanız gerekiyor. Dosya readonly modunda olacak. Yani root giriş böylece "su" komutunu ekleyin sağlamak ilk 'su vim sudo /etc/apache2/apache2.conf hizmet apache2 Tekrar başla http://tutsnare.com/remove-index-php-from- uRL-in-yii2 / – vijay