Bunu nasıl yapmak için yeniden mod kurarım?

1 Cevap php

Heres Merhaba çocuklar sahne - Ben temelde tüm kullanıcılar için hesapları oluşturur bir web uygulaması inşa ediyorum. Bu dosya yapısı gibi şu anda kurulumu:

root/index.php
root/someotherfile.php
root/images/image-sub-folder/image.jpg
root/js/somejs.js

Kullanıcıların bir hesap oluşturduğunuzda onlar sabit bir grup adını seçin ve ardından kullanıcıların bu gruba katılabilirsiniz. Başlangıçta ben kullanıcı giriş aittir grubuna girmek için giriş ekranında bir ekstra kutucuğu sahip düşündüm. Ama bu durumda sanal klasörler gibi bir şey var yerine istiyorum:

root/group-name/index.php

Herhangi bir yardım burada - Ben apache yeniden mod ile yapılabilir ama bunu nasıl emin değilim duydunuz?

Temelde yerine ve grup-name = yourGroupName her sayfaya eklenecek gibi bir şey olan I would sadece yukarıda doğanın bir şey gibi.

1 Cevap

Bir. Htaccess dosyasında Mod Rewrite yapılandırabilirsiniz, örneğin

root / .htaccess:

RewriteEngine On

#make sure that urls which already represent files or directories are not rewritten
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#update this if the files are not actually in /root
RewriteBase /root 

RewriteRule ^([^/]+)/(.*\.php)$ $2?group-name=$1 [L,QSA]

Yani herhangi bir isteği uyan /[groupname]/[php file] yeniden yazılmalıdır /[php file]?group-name=[groupname].

  • L Bu son kural demektir, bu yüzden eşleşirse diğer kuralları yayınlanmaya devam yok
  • QSA Özgün sorgu dizesi (yani diğer GET parametreleri hala PHP komut geçirilen) append demektir

Belki daha kısıtlayıcı bir şey ile grup isimlerini ([^/]+) eşleşen deseni, örneğin yerini alabilir ([a-zA-Z0-9_-]+).

Ayrıca her istek üzerine. Htaccess dosyasını ayrıştırma daha hızlı olabilir, hangi Apache yapılandırma dosyalarından birinde yapılandırmayı koyabilirsiniz.