PHP ішіндегі URL мекен-жайынан index.php қалай шығарылады?

Мен index.php-ні url-дан алып тастағым келеді, бірақ әзірге оны табысқа жете алмадым. Мен Wamp серверін жергілікті және Apache-те қашықтағы серверде қолданамын. Жергілікті түбірлік каталогта менің жобалық файлдар сияқты ішкі қалтада орналасқан

www/project/index.php

Мен сияқты веб-беттерге кіре аламын

localhost/project/index.php/home

localhost/project/index.php/messages /? mId = 3

Мен жай ғана оған қол жеткізгім келеді

localhost/project/home
localhost/project/messages/?mId=3

Мен қазірдің өзінде кейбір .htaccess қайта жазу ережесін сынап көрдім, бірақ оны жасай алмадым.

1

2 жауаптар

Мұнда қалай ұйымдастыру керек:


    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php/$1 [NC,QSA,L]

Ал содан кейін сізге қажетті нәрсе бар.

1
қосылды

.Htaccess файлымен url қайта жазуды пайдалану керек болады:


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

Әрбір ішкі қалтадағы осы мазмұнмен .htaccess қойыңыз.

1
қосылды
Рахмет Мартин, ол жұмыс істейді. Бірақ тағы бір мәселе, мен әлі де индексі.php арқылы индекстің. Мен localhost/project/home енгізген кезде жұмыс істейді, бірақ мен /localhost/project/index.php/home деп жазсам, ол әлі де бар ма?
қосылды автор Fatih Donmez, көзі
Сондай-ақ, .htaccess өзгергеннен кейін $ _SERVER ['PATH_INFO'] бос емес. Мен оны url басқару элементінің атын есептеу үшін index.php ішінде қолдандым.
қосылды автор Fatih Donmez, көзі
иә, осы қайта жазу шарттарымен барлығы PATH_INFO орнына $ _GET ['url'] ішінде қолжетімді болады
қосылды автор Martin Samson, көзі