Autor Zpráva
AMD
Profil
Ahoj. Předem se omluvám za titulek, nevím jak se tomu říká. :( V PHP neumím a tak jsem se chtěl na něco zeptat. Mám index.php napsaný nějak takhle (úryvek):
<?php

header("content-type: text/html; charset=utf-8");
switch($_GET['co'])
{
case "kontakt":
$stranka="kontakt.html";
$h1="Kontakt";
break;

case "omne":
$stranka="omne.html";
$h1="O mně";
break;
...

a URL potom píšu takto: /?co=kontakt a tak podobně. Jak udělat abych mohl psát /kontakt (...)? Nemusím míz doufám další index v adresářikontakt, atd.? Budu rád za konkrétní příklady s kódem. Díky.
halogan
Profil
Rewrite rule ^(kontakt|omne|blbustka|dalsi)/?$ /?co=$1 [L,QSA]

Vice v ruznych navodech na mod_rewrite
AMD
Profil
mod_rewrite leda lokálně... mám free hosting u xhosting.cz, tak nevím... na jejich webu o tom nic nevidím... jak to testnu?
AMD
Profil
Huh, reagoval jsem na M. Kuželku a jeho komentář jaksi zmizel...
Martin Kuželka
Profil
Omlouvám se, smazal jsem se :-) Halogan mě předběhl, takže můj příspěvek se stejným doporučením, jako dal on, by byl zbytečný...
AMD
Profil
Aha. :) Už jsem se lekl, že jsem tě (mod_)rewritnul...
AMD
Profil
Jakmile to kamkoliv přidám (ten řádek od halogana) tak to řve:

Parse error: parse error, unexpected T_STRING in /var/www/localhost/htdocs/dev/index.php on line 2

pro jistotu jsem zkontroloval, zda je mod_rewrite natažený

grep rewrite /etc/apache2/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so

a je...
halogan
Profil
AMD: Koukni na jiny thready, je tu navodu na mod_rewrite vic nez dost. Staci hodit do .htaccess
RewriteEngine On # mozna tam je mezerka, ted nevim, ale myslim ze ne
# ten muj kod
halogan
Profil
Jsu mazal, ten muj puvodni kod ma byt takto:
RewriteRule ...
halogan
Profil
Kdyz unixove, tak unixove

halogan@localhost ~ $ cat .htaccess

RewriteEngine On
RewriteRule ^(kontakt|omne|halo|tady)/?$ /?co=$1 [L,QSA]
AMD
Profil
Koukám, že má htaccess v ~/, kde se to nastaví, nebo jaká je výchozí cesta?
AMD
Profil
s/má/máš/
halogan
Profil
To jsem mel jen jako soubor pro tebe, cestu neres, hod to do korenovyho adresare tvyho projektu, takze treba /var/www/zspolackova/.htaccess

A bude to aplikovany na celej adresar
AMD
Profil
Zkoušel jsem ten .htaccess dát do /var/www/localhost, /var/www/localhost/htdocs i /var/www/localhost/htdocs/dev
http://127.0.0.1/dev je kořenáč (testovací) ale:

The requested URL /dev/uvod was not found on this server.
halogan
Profil
AMD: blba otazka, ale hodil jsi "uvod" do toho .htaccess?
AMD
Profil
[david@amd64 ~] $ cat /var/www/localhost/htdocs/.htaccess
RewriteEngine On
RewriteRule ^(kontakt|omne|blbustka|uvod)/?$ /?co=$1 [L,QSA]

jj... musím se přiznat, že jsem to tam přidal až teď... jednou jsem to připsal, ale pak jak jsem to dal do toho .htaccessu jsem na to zapomněl... přesto je to pořád stejný. :(
halogan
Profil
Kurnik,
1) tohle by melo byt v adresari s tim projektem
2) nevim jak to funguje v podadresari (mam to vzdycky v rootu projektu, kterej je na vhostu), takze mozna to bude chtit upravit na
RewriteRule ^dev/(kontakt|omne|blbustka)/?$ /?co=$1 [L,QSA]

Protoze cil regexpu je afaik REQUEST_URI.
AMD
Profil
root@amd64 ~ [ r11.18G h45.27G p128M s1035M | 1/151 1.26 ]
[00:02] # cat /var/www/localhost/.htaccess
RewriteEngine On
RewriteRule ^(kontakt|omne|uvod)/?$ /?co=$1 [L,QSA]

root@amd64 ~ [ r11.18G h45.27G p128M s1035M | 1/151 1.04 ]
[00:02] # curl -I localhost
HTTP/1.1 200 OK
Date: Fri, 30 Dec 2005 23:03:19 GMT
Server: Apache
X-Powered-By: PHP/5.0.5-pl3-gentoo
Content-Type: text/html; charset=utf-8

root@amd64 ~ [ r11.18G h45.27G p127M s1035M | 1/148 0.52 ]
[00:03] # curl -I localhost/uvod
HTTP/1.1 404 Not Found
Date: Fri, 30 Dec 2005 23:03:34 GMT
Server: Apache
Content-Type: text/html; charset=iso-8859-1

v / ten index.php mám taky, takže jsem to zkusil skrz něj... přesto to ani teď nejde...
halogan
Profil
halogan@localhost ~ $ cd /stuff/www/localhost/

halogan@localhost /stuff/www/localhost $ ls
index.html
halogan@localhost /stuff/www/localhost $ touch index.php
halogan@localhost /stuff/www/localhost $ gvim .htaccess
halogan@localhost /stuff/www/localhost $ cat .htaccess
RewriteEngine On
RewriteRule ^(omne|kontakt)/?$ /index.php?co=$1 [L,QSA]
halogan@localhost /stuff/www/localhost $ curl -I localhost/omne
HTTP/1.1 200 OK
Date: Fri, 30 Dec 2005 23:25:28 GMT
Server: Apache
X-Powered-By: PHP/5.0.5-pl3-gentoo
Content-Type: text/html; charset=UTF-8

halogan@localhost /stuff/www/localhost $
AMD
Profil
Pomohlo v /etc/apache2/vhosts.d/00_default_vhost.conf změnit v AllowOverride z None na All. Díky, halogane... :)
halogan
Profil
AMD: To jsem zapomnel zminit, protoze jsem tajne ocekaval, ze mas .htaccess povolene. No nic, se stava :)
AMD
Profil
Asi si říkáš jaký jsem pako, ale... máš naprostou pravdu! :D
halogan
Profil
AMD: V pohode, ja tohle nastavuju jako jeden z prvnich parametru po kompilaci Apache, nenastavuju to vsak v default_vhost.conf, ale primo v httpd.conf pro urcitou <directory>
AMD
Profil
Můžeš mi pastnout tu pasáž, pls? Ať se (zbytečně) nemořím v dokumentaci.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0