Autor Zpráva
Roboter
Profil
Dobrý večer,
dnes jsem na svém testovacím webu měnil dynamické url na statické pomocí mod_rewrite; mám však na stránkách více složek a tím pádem víc dynamických adres, konkrétně:
ROOT/pages -> /index.php?IDpage=xxx
ROOT/pages/names -> /index.php?IDname=xxx
ROOT/pages/archiv -> /index.php?IDarch=xxx
Mod_rewrite jsem zapsal do .htacces takto:
RewriteEngine On
RewriteRule ^(.*)\.html$ %{DOCUMENT_ROOT}/index.php?IDpage=$1 [L,QSA]

Nevím, jak do .htaccess zakomponovat zbylé možnosti pro names a archiv.
V index.php mám toto:
	$head = $_GET['IDarch'];
	$head = $_GET['IDname'];
	$head .= $_GET['IDpage'];

if($_GET['IDarch']) { 
	$body = $_GET['IDarch'];
	$body = "archiv/$body"; 
}
if($_GET['IDnames']) { 
	$body = $_GET['IDname'];
	$body = "names/$body"; 
}
if($_GET['IDpage']) { 
	$body = $_GET['IDpage'];
	$body = "$body"; 
	}
if(empty($body)) {
	$body = "news"; }


Ten php kód mi kdysi naprogramoval kamarád, se kterým už nejsem v kontaktu; bohužel zatím nejsem v php sběhlý, teprve se učím. Děkuji za rady.
temistokles
Profil
RewriteEngine On
RewriteRule ^(.*)/pages/names/(.+)\.html$ %{DOCUMENT_ROOT}/index.php?IDname=$1/pages/names/$2 [L,QSA]
RewriteRule ^(.*)/pages/archiv/(.+)\.html$ %{DOCUMENT_ROOT}/index.php?IDarch=$1/pages/archiv/$2 [L,QSA]
RewriteRule ^(.*)/pages/(.+)\.html$ %{DOCUMENT_ROOT}/index.php?IDpage=$1/pages/$2 [L,QSA]


prípadne možno budeš chcieť:

RewriteEngine On
RewriteRule ^.*/pages/names/(.+)\.html$ %{DOCUMENT_ROOT}/index.php?IDname=$1 [L,QSA]
RewriteRule ^.*/pages/archiv/(.+)\.html$ %{DOCUMENT_ROOT}/index.php?IDarch=$1 [L,QSA]
RewriteRule ^.*/pages/(.+)\.html$ %{DOCUMENT_ROOT}/index.php?IDpage=$1 [L,QSA]
Roboter
Profil
Děkuju, musel jsem to ještě takhle vyladit:
RewriteEngine On
RewriteRule ^(.*)/names/(.+)\.html$ %{DOCUMENT_ROOT}/index.php?IDname=$1/names/$2 [L,QSA]
RewriteRule ^(.*)/archiv/(.+)\.html$ %{DOCUMENT_ROOT}/index.php?IDarch=$1/archiv/$2 [L,QSA]
RewriteRule ^(.*)\.html$ %{DOCUMENT_ROOT}/index.php?IDpage=$1 [L,QSA]

Ale funguje to, děkuju moc, hezký den.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0