Ukrywanie Index.php

Witam,

Mam problem z ukryciem pliku index.php w URL-ach. Zrobiłem wszystko jak w tutorialu (przynajmniej tak mi się wydaje…), przeszukałem też neta i nie znalazłem rozwiązania.

W pliku protected/config/main.php dopisalem:




[...]

'urlManager'=>array(

            'urlFormat'=>'path',

            'showScriptName'=>false,

        ),

[...]



Podczas najechania myszką na link w pasku stanu pokazuje i sie url bez index.php, wiec wnioskuję, że konfiguracji yii jest poprawna

W katalobu root umiescilem plik .htaccess z nastepujaca trescia:




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



Mimo to dostaję error #404

Używam Apache (WampServer 2.4) i właczyłem modrewrite w httpd.conf.

Proszę o pomoc,

Pozdrawiam.

Podaj przykładowy URL jaki otwierasz i sprawdź, czy w Apache masz zezwolenie na używanie htaccess poprzez przykładowo włączenie opcji "AllowOverride All".

localhost/e-kpdh_yii/site/index - #404 error

localhost/e-kpdh_yii/index.php/site/index - dziala

w pliku httpd.conf mam:




<Directory />

    AllowOverride All

    Require all granted

</Directory>


<Directory "C:/wamp/www/e-kpdh_yii">

    AllowOverride All

</Directory>



Witam,

Na mojej testowej wersji bloga działa poniższa konfiguracja.

W pliku konfiguracyjnym aplikacji main.php mam ustawione:




'urlManager' => array(

            'urlFormat' => 'path',

	    'showScriptName'=>false,

            'rules' => array(

                '<controller:\w+>/<id:\d+>' => '<controller>/view',

                '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',

                '<controller:\w+>/<action:\w+>' => '<controller>/<action>',

            ),

        ),



w głównym folderze aplikacji dodałem plik .htaccess a w nim:




RewriteEngine on


# jeżeli katalog lub plik istnieje użyj ich bezpośrednio

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d


# w przeciwnym razie przekieruj na index.php

RewriteRule . index.php



Generalnie jest to opisane w przewodniku

pozdrawiam

Przyszło mi jeszcze do głowy, że być może .htaccess masz w katalogu root ale dla wampservera czyli w c:\wamp\www\ a patrząc na ustawienia w Twoim apachu to powinieneś mieć c:\wamp\www\e-kpdh_yii\

@rdvitka

Zrobiłem wszystko jak u Ciebie i niestety nadal nie działa bez index.php

Plik .htaccess mam w katalogu e-kpdh_yii, wiec to chyba nie kwestia tego. Mam zrobione wszytko tak jak opisane w poradniku, sprawdzalem kilka razy… mimo to nic…

Jesli ktoś ma jeszcze jakiś pomysł to prosze o porade

Dodaj w .htaccess RewriteBase e-kpdh_yii.

Nie zwróciłem wcześniej uwagi, że serwujesz stronkę z podkatalogu a nie z głównego. W samej aplikacji tez w configu można ustawić baseUrl.

Witam,

Żadna z porad niestety nic nie wniosła… przeniosłem aplikację do folderu głownego, teraz po odpaleniu localhost mam stronę główną aplikacji. W folderze C:/wamp/www gdzie znajduje się plik index.php umiescilem plik .htaccess o następującej treści:




RewriteEngine on


# jeśli katalog lub plik istnieją, użyj ich 

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

# w przecwinym przypadku przekaż do index.php

RewriteRule . index.php



W pliku httpd.conf zapisalem:




<Directory />

    AllowOverride All

    Require all granted

</Directory>



W pliku C:/wamp/www/protected/config/main.php :




'urlManager'=>array(

            'urlFormat'=>'path',

            'showScriptName'=>false,

            'rules' => array(

                '<controller:\w+>/<id:\d+>' => '<controller>/view',

                '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',

                '<controller:\w+>/<action:\w+>' => '<controller>/<action>',

        ),


),



Oczywiście mam włączone mod rewrite w apachu.

Mimo to nadal przy wpisywaniu http://localhost/site/index mam błąd #404

Przy wpisaniu http://localhost/index.php/site/index wszystko ładnie działa.

Nie mam pojęcia gdzie popełniam błąd :(

Dodaj urlSuffix ja poniżej


'urlManager' => array(

          'urlFormat' => 'path',

          'showScriptName' => false,

          'urlSuffix' => '/',

          'rules' => $params['url.rules']



Wciąż to samo…wydaje mi się ze to raczej kwestia serwera niż yii…

Właśnie poświęciłem godzinę na walkę z tym samym problemem. Wniosek jest taki, ze przyjazne urle nie działają dla aliasów, konieczny jest VirtualHost. U mnie pomogło. Być może coś skopałem w konfiguracji alias. Walczyłem z tym przy yii2, najpierw myślałem że to wina tej alfy.