Autor Zpráva
martin8
Profil *
Čau tak nějak jsem dokončil web (začátečnický) v PHP ...
Potřeboval bych jen poradit s pár věcma:

1)
Když mám switch (zkráceně)

<?php
  case "jedna":
       $title = "stejný text";
  break;
  
  case "dva":
       $title = "stejný text";
  break;
  ?>


Jde nějak udělat, aby jsem to nemusel vypisovat 2x ale něco ve stylu case "jedna, dva":

------------------------------
2)
Nyní mám url ve tvaru /index.php?str=neco ... Abych dostal pouze /neco.php a stránky zůstaly funkční bez přesouvání souborů to se dělá v .htaccess pomocí: mod rewrite, redirect, rewrite nebo jak?
------------------------------

Děkuju za rady jsem na tohle lamka :-)
petr 6
Profil
  case "jedna":
  case "dva":
       $title = "stejný text";
  break;
  
martin8
Profil *
petr 6:
Děkuju, funguje :-) . Teď jestli by jsme mohli dát nějak do kupy ten mod_rewrite
panther
Profil
martin8:
http://mike.treba.cz/mod_rewrite-a-hezke-url/ (6. příklad by měl být to, co hledáš).
martin8
Profil *
Tak jsem po přečtení návodu použil tenhle kód:

RewriteEngine on
RewriteRule ^([^.]*).php$ /web/index.php?str=$1 [L,QSA]


No potvora mi vyhodí chybu Internal Server Error

LoadModule rewrite_module modules/mod_rewrite.so - mám v Apache povolené
ShiraNai7
Profil
Podívej se do error logu apache. Tam by mělo být možné zjistit o jakou „Internal Server Error“ se jedná.
motik
Profil
martin8
nejspíš to bude tou příponou .php - zkus to předělat třeba na .htm
martin8
Profil *
error log:

[Wed Feb 16 12:25:09 2011] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: http://localhost/

motik:
při změně na html se nic neděje.


No možná mám nějak špatně nakonfigurovaný Apache... Jako kořenový adresář.
Stránky dávám do C:/AppServ/www/sachovkanew2/

A nastavení: DocumentRoot "C:/AppServ/www"
motik
Profil
martin8:
a zkoušel si to takto:
RewriteEngine on
RewriteRule ^([^.]*).htm$ /web/index.php?str=$1 [L,QSA]
??
motik
Profil
martin8:
při změně na html se nic neděje.

nic neděje? - jako že to hází stejnou chybu? nebo to hlásí jinou (stránka nenalezena)??.. nejspíš tam máš ještě špatně cestu k tomu souboru index.php..
martin8
Profil *
motik:
Nic se neděje jako že nic se neděje... Jako by v .httacces nic nebylo
Davex
Profil
martin8:
No potvora mi vyhodí chybu Internal Server Error
Protože se to pravidlo zacyklí - viz chybu „Request exceeded the limit of 10 internal redirects...

Přidej podmínku, která zabrání zacyklení.

RewriteEngine on
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteRule ^([^.]*).php$ /web/index.php?str=$1 [L,QSA]

Nic se neděje jako že nic se neděje... Jako by v .httacces nic nebylo
Samotný skript http://localhost/web/index.php?str=cokoliv něco zobrazí?
motik
Profil
martin8:
- a cestu k souboru index.php máš správně??

> No možná mám nějak špatně nakonfigurovaný Apache... Jako kořenový adresář.
> Stránky dávám do C:/AppServ/www/sachovkanew2/

- a co vůbec máš v tom souboru index.php?

zkus, jestli ti to udělá při zadání přesné adresy to co chceš(např.):
http://localhost/sachovkanew2/index.php?str=neco

a potom se vrhni na .htaccess

Jako by v .httacces nic nebylo
martin8
Profil *
Davex:
Když tam přidám to:

RewriteCond %{ENV:REDIRECT_STATUS} =""


Tak mi přestane fungovat CSS styl a adresy to ani tak nezmění :-(
martin8
Profil *
Tak já se omlouvám, moje blbost...

.htaccess funguje. Akorát jsem nevěděl, že musím zadat přímo tu adresu neco.php (teda i změnit v menu).

Já žil v domění, že se to přesměruje automaticky

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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