htaccess till ?page=

Diskussion av datorer, inte bara i rent tekniska aspekter utan även i politiska och filosofiska.

Moderator: Moderatorgrupp

Användarens profilbild
Kail
Administratör
Administratör
Inlägg: 2935
Blev medlem: 2003-06-03 13:53
Svar: 0
Ort: Linköping/Stockholm

Re: htaccess till ?page=

Inlägg av Kail »

Alltså du kan inte ha två rewrite-regler som matchar på samma mönster. Du måste sätta olika villkor (rewritecond) för dem, annars krockar de.

Drupal kan vara lite av en tröskel men det finns bra böcker om Drupal och NodeOne kommer också att ordna kurser om Drupal framåt hösten.
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide
sanda
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 112
Blev medlem: 2007-10-01 02:17
Svar: 0

Re: htaccess till ?page=

Inlägg av sanda »

Jo det är flera som tycker jag ska ge upp mitt eget och ge mig in i drupals värld. Är det lätt att modifiera eller är det mer som joomla och wordpress (förvisso flexibelt men inte i alla lägen) tänkte mer i web 2.0 synvinkel.

Åter till mitt problem (vill gärna lösa detta) använder 2 rewritecond för första regeln. Jag använter lite av ett template system för att visa sidor så kanske kan va det också. visar lite kod.

.htaccess som endast ger min statiska (hårdkodade) sidor fina URL'er.

Kod: Markera allt

<IfModule mod_rewrite.c>
  RewriteEngine on
  # Rewrite current-style URLs of the form 'index.php?page=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?page=$1 [L,QSA] 
</IfModule>
index.php som hämtar rätt sida att visa.

Kod: Markera allt

if( isset( $_GET['page'] ) )
	{
    	$template = $_GET['page'] . '.php';

    	//check if template file exists, if not display error page
    	if( !file_exists( 'templates/' . $template ) )
    	{
    	$template = '404.php';
    	}
	}
	else
	{
    	$template = 'home.php';
	}

include_once( 'templates/inc/header.php' );
include_once( 'templates/' . $template );
include_once( 'templates/inc/footer.php' );
Kanske inte den optimala koden men den tjänar sitt syfte.

Vill alltså använda 2 st olika rewrite regler.

1. Den jag har (längst upp), att visa /filen för mina statiska sidor

2. Att visa /pages/1 (id) (eller titel)
har alltså en tabell kallad "pages" där jag kommer ha sidor som om-oss, kontakt o.s.v (pages.php visar sidan ifråga)

Har försökt i snart ett dygn och läst massor men kan inte komma på vad jag gör fel.
Skriv svar

Vilka är online

Användare som besöker denna kategori: 4 och 0 gäster