v2.5.2
Giriş yap

.htaccess ile linkleri manipüle edemiyorum.

zezecsgo
278 defa görüntülendi

app
public
views
index.php
dosya yapısına sahip bir projem var.
http://localhost/borneo/views/forum/forumlar.php?forumid=1
adresine gittiğimde
http://localhost/borneo/forumlar/1 şeklinde url'e sahip olmak istiyorum.

.htaccess dosyamı şu şekilde ayarladım fakat çalışmadı. Nerede hata yapıyorum anlayamadım. yardımcı olur musunuz lütfen.

RewriteEngine On
RewriteRule ^forumlar/([0-9a-zA-Z-_/]+)$ views/forum/forumlar.php?forumid=$1 [L]

Cevap yaz
Cevaplar (2)
h4ckdr0
451 gün önce

Aşağıdaki kod bloğu ile .htaccess dosyanızı düzenlemeyi deneyin:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^forumlar/([0-9]+)/?$ views/forum/forumlar.php?forumid=$1 [L,QSA]

Açıklama:
RewriteCond komutları, yapılacak URL dönüşümü için eşleşme koşullarını belirtir.
!-f: İstenen URL dosya olarak mevcut değilse
!-d: İstenen URL dizin olarak mevcut değilse
RewriteRule komutu, istenen URL dönüşümünü yapar ve GET parametrelerinin de (QSA) taşınmasını sağlar.

Bu yöntem genelde işe yarar ama diyelim ki işe yaramadı veya alternatif olarak PHP ile URL'yi yapılandırmak istediniz. Bu durumda aşağıdaki kod bloğunu "index.php" dosyasına veya ilgili alana ekleyerek yapabilirsiniz:

<?php

$url = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$url = explode('/', $url);

if ($url[1] == "forumlar" && isset($url[2])) {
    include "views/forum/forumlar.php";
    exit;
}

// diğer sayfalar için yapılacak işlemler

?>

Bu şekilde, "forumlar/1" gibi bir URL isteği, "views/forum/forumlar.php" dosyasına yönlendirilir ve "forumid" GET parametresi olarak "1" değeri atanır.

kargasa1982
453 gün önce

htaccess dosyan güncellendiği anda etkin olmuyor olabilir. hosting üzerinde çalışıyorsan bunu firmaya sorabilirsin. litespeed gibi bir alt yapın varsa, litespeed işlemi yeniden başlatıldığında dosyandaki değişiklikler aktif olur.