2009-07-27 9 views
7

Właśnie nauka Yii ram i przeczytać ten poradnik o yii how to setup urljak skonfigurować url przyjazne w frameworku Yii automatycznie

ale nie mam pojęcia, załóżmy, że mam 10 kontrolerów, należy zdefiniować jeden po drugim kontrolerów w config plik? jest lepszy sposób na skonfigurowanie przyjaznego adresu URL, jak www.yoursite.com/yourController/yourAction/yourID dla wszystkich kontrolerów?

Myślę, że codeigniter zrobił to automatycznie ... co powiesz na Yii?

Odpowiedz

19

W /protected/config/main.php dodać ..

'urlManager'=>array(
     'urlFormat'=>'path', 
     'showScriptName' => false,  
     ), 
    ), 

W katalogu głównym internetowej .htaccess ..

Options +FollowSymLinks 
IndexIgnore */* 
RewriteEngine on 

# if a directory or a file exists, use it directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# otherwise forward it to index.php 
RewriteRule . index.php 
+1

Chciałabym dać +10 głosów dla tej odpowiedzi, jak znalezienie byłoby to zapisane mi godzinę poszukiwań i usiłuje zmusić go do pracy prawidłowo. –

+0

Podążyłem za twoją odpowiedzią. ale myślę, że nie mam szczęścia. Odkomentowuję urlManager, gdy generuję aplikację z yii w katalogu [root aplikacji] /protected/config/main.php. I dodaję. Htaccess do mojego [root aplikacji] /. Htaccess. ale dostałem błąd 404. pls pomóż mi rozwiązać. –

+0

@tharsoe Otrzymałem błąd 404 i mój plik .htaccess nie był w katalogu głównym, ale wewnątrz chronionego folderu. Przeniosłem go do korzenia. (to samo miejsce co index.php) i zaczęło działać poprawnie. – albertski

1

Istnieją automatyczne generowanie adresów URL również w Yii. Na przykład wystarczy napisać w szablonie takie URL bez ręcznego trasy:

<?php echo CHtml::link('topic title',array('topic/view','id'=>$topic->id,'var'=>'123')); ?> 

i renderowane URL będzie następująca:

/topic/view/id/1/var/123 

Następnie w sposobie naszego działania actionView() Używamy tych parametrów:

... 
$id=$_GET['id']; 
$var=$_GET['var']; 
... 
Powiązane problemy