PHP motorunda htaccess faýlynyň ulanylyşy

Web sahypasynyň motorini ýasamak üçin, ilki bilen, sahypanyň islendik URL üpjünçiliginiň bir PHP faýly tarapyndan işlenmegini üpjün etmeli.

Bu, ýörite bir faýl .htaccess arkaly amala aşyrylýar. Geliň bu faýly dörediň we ony işjeňleşdiriň, faýlyň tekstiniň başynda aşakdaky setirleri ýazmak bilen:

.htaccessRewriteEngine On
RewriteBase /

Şondan soň, haýsy faýlyň sorag edilen URL-i işlemeli digini görkezip bileris. Bu, RewriteRule buýrugy arkaly amala aşyrylýar.

Geliň bu buýrugyň işini amalyýetda göreliň. Mysal üçin, /test adresiniň index.php faýly tarapyndan işlenmegini üpjün edeliň:

.htaccessRewriteRule /test index.php

RewriteRule buýrugynyň birinji parametri, aslynda, düzgün görnüşi (regular expression) kabul edýär. Geliň ony ulanyp, ähli URL-leriň index.php faýly tarapyndan işlenmegini üpjün edeliň:

.htaccessRewriteRule .+ index.php

Şonda-da, adresleriň bir bölegi, häzirki wagtda, gönükdirilmezlik gerek. Bu, çeşmeleriň faýllaryna gönükdirýän adreslerdir: CSS, JavaScript, suratlar we şuňa meňzeşler.

Geliň olaryň gönükdirilmegini RewriteCond buýrugy arkaly ýatyralyň:

.htaccessRewriteCond %{REQUEST_URI} !\.(js|css|ico|jpg|png)$
RewriteRule .+ index.php

index.php sahypasynda biz, sorag edilen URL-i superglobal $_SERVER massivi arkaly alyp bileris:

index.php<?php
  $url = $_SERVER['REQUEST_URI'];
?>
Задание 1

.htaccess faýlyny dörediň. Ony ulanyp, ähli soraglaryň index.php faýlyna gönükdirilmegini amala aşyryň.

Задание 2

index.php faýlynda sorag edilen URL-i çap ediň.