MVC çerçevesinde URL yönlendirme - PHP

2 Cevap php

Ben sıfırdan PHP MVC framework geliştirmeye devam ediyorum; çoğunlukla öğrenme deneyimi ama bu kolay bir canlı projede bitebileceğini. Ben bir üs olarak bu tutorial ile gitti ve ben oradan genişlettik.

İstekler böyle yapılır:

examplesite.com/controller/action/param1/param2 / ve böylece ...

. Ve bu benim htaccess dosyası:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?rt=$1 [L,QSA]

Yani tüm istekleri index.php gidin ve oradan doğru denetleyicisi ve eylem yönlendirilir. Hiçbir kontrol veya eylem verilirse, o zaman default 'index' her ikisi için de kabul edilir.

I have an index controller with an index action, which is supposed to be the home page of my site. I can access it by going to examplesite.com (since the index part is assumed). It has some images, a link to a stylesheet, and some scripts. They are linked with paths relative to index.php. I thought this would be fine since all request go to index.php and all content is simply included in this page using php. This works if I go to examplesite.com. I will see all of the images and styles, and scripts will run. However, if I go to examplesite.com/index, I am routed to the correct part of the site, but all of the links don't work. Does the browser think I am in a different folder?

Aksi takdirde ben emin şeyler gösterecektir yapmak için her yerde mutlak yolları kullanmak gerekir, çünkü, benim sitedeki tüm içerik için göreceli yolları kullanmak mümkün istiyorum. Bu mümkün mü?

2 Cevap

Tarayıcılar mevcut istek URI göreli göreli yolları (Eğer baz etiketi kullanmadığınız sürece, aşağıya bakınız) değerlendirmek, çünkü, mutlak bir yol gerekir. Mutlak bir yol necesseraly anlamına gelmez bunu domainname'ini dahil etmek gerekir ama unutmamanız gerekir. Sadece bir eğik çizgi ile başlayan yeterlidir. Bu tabiri caizse sunucuya mutlak yol akrabası bulunuyor.

Yani:

<img src="/images/bla.gif">

yerine içinde

<img src="images/bla.gif">

... Sadece iyi çalışır.

I mentiond ettiğimiz gibi, başka bir yaklaşım base tag kullanmak olacaktır. Ama şu an hatırlayamıyorum nedenlerden dolayı, ben onu kullanmak değil tavsiye edilir inanıyorum. (Else Eğer herkes burada ... düşmek istiyor)

IMO görüntüler, javascript, stilleri, ve diğer statik içerik not yönlendirme sisteminin bir parçası olmalıdır. Bu Apache gayet dosyaları hizmet verebilir zaman, her isteğine (performans vurmak) için PHP yüklemek anlamına gelir.

. Benim htaccess hep varolan dosyaları PHP atlamak sağlar:

# Files with an extension that exist are served up straight.
RewriteCond %{REQUEST_URI} \..+$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .* - [L]