Autor Zpráva
Coompiik
Profil
Ahoj všichni,
Mám stránku vyřešenou tak, že v podstatě jede přes 404,
Když se kamkoliv jde, např. example.com/novinky, přesměruje to na stránku 404 která zpracuje přes REQUEST_URI zpracuje /novinky a načte z MySQL přislušný obsah a zobrazí ho, jenže jsem zjistil že mi nefungují POST požadavky, prostě zmizej někde v procesu 404 a zpracování.
Nevíte někdo prosím jak zařídit aby tam zůstaly, popř. nějaký jiný fungující způsob zavolání tabulky za pomocí adresy?
Omlouvám se jestli jsem to napsal přiliš nesrozumitelně a za pravopisné chyby, spěchá to takže píšu rychle.
Předem děkuji za každou případnou odpověď
Milan „Coompiik“ Jelínek(14)
sitole
Profil
Coompiik:
Jako první by jsem to vyřešil naprosto jinak. Z uživatelského hlediska to vcelku jde, ale umíš si představit to peklo pro vyhledávače? To raději ne.
Proč to neudělat tak, že /novinky nebude stránka ale bude to /?stranka=novinky a v .htaccess to nezamaskuješ za /novinky ? Bude to daleko lepší pro pozdější úpravu, ale hlavně pro vyhledávače a nic se ti nikde neztratí. Promin, ale tohle je SEO sebevražda.
Coompiik
Profil
Já vím, a asi to tak vyřeším, ale přemýšlel jsem jestli by nějak nešlo udržet tu krásu adresy coompiik.cz/novinky...
Alphard
Profil
Dalo, nevidím do implementace, ale možná by stačilo začít vaší současné 404 říkat controller.
Údaje v POST se ztrácejí přesměrováním, chtělo by to vidět kód.
bestik_63
Profil
Není lepší to místo přes stránku 404 to řešit přes stránku "router", který podle REQUEST_URI načte příslušnou třídu, která zobrazí stránku. Načti si něco o tzv. hezkých adresách, MVC a během pár hodin budeš dělat mnohem lepší stránky "z pohledu programátora". A nebude to SEO sebevražda :-)
Coompiik
Profil
Nejspíš to vyřeším tedy tím, /?stranka, děkuji moc za návrhy a omlouvám se že takto pozdě večer obtěžuji.
bestik_63
Profil
funguje to jednoduše.
Htaccess ti při každém požadavku podstrčí stránku např. index.php. Tam je skript, který se podívá na REQUEST_URI a podle něj načte třídu. A v té třídě je kód který ti zobrazí příslušnou stránku. Takže nemusíš nic přesměrovávat a řešit to přes stránku 404.
Coompiik
Profil
Jo táák... A nepříjdu tím o post požadavky?
bestik_63
Profil
právě že ne, protože tam není žádné přesměrování. Pouze podle REQUEST_URI načteš (pomocí require) jinou php stránku.
Coompiik
Profil
Děkuji moc! Opravdu jste mi pomohly :) -- Vyřešeno


Promiňte ještě, nevíte jak to udělat v případě např. http://example.com/?stranka=projekty/hellodolly? Na hezkou adresu mam v htaccess RewriteRule ^([a-zA-Z0-9]+)$ /index.php?stranka=$1 [L,QSA]. Jde to nějak takto vyřešit?
Alphard
Profil
Změnou toho reguláru, konkrétně tady chybí povolení lomítka.
Můžete se inspirovat .htaccess souborem z Nette sanboxu.
bestik_63
Profil
ahoj toto se dělá taky jinak.
stránka s parametrem vypadá nějak takto:
http://example.com/projekty/hellodolly

na stránce "router" pak budeš mít skript, který získá REQUEST_URI a z toho vyčte (projekty/hellodolly). První slovo znamená jakou stránku má načíst a druhý je parametr, podle kterého měníš zobrazení stránky.
Coompiik
Profil
Děkuji moc všem :)
Coompiik
Profil
Promiňte že to znovu otevírám, ale nedaří se mi nikde najít odpověď, použil jsem tedy jednoduché zpracování přes RewriteRule v .htaccess, funguje perfektně v např. http://example.com/kontakt ale v momentě kdy vyhledávač přidá nakonec lomítko http://example.com/kontakt/ už se to snaží načíst index.php ve složce kontakt, nevíte prosím jak to opravit?
Zde přikládám můj .htaccess:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+|)$ /index.php?stranka=$1 [L,QSA]
Děkuji předem za každou odpověď
Fisir
Profil
Reaguji na Coompiika:
Musíš v regulárním výrazu povolit i lomítko.
Coompiik
Profil
Fisir: To je ten problém nějak nevím jak.
Fisir
Profil
Reaguji na Coompiika:
RewriteRule ^(.*)$ /index.php?stranka=$1 [L,QSA]
Alphard_
Profil *
[#17]:
Z bláta do louže, tohle bude (bez dalších podmínek) přesměrovávat i statický obsah jako obrázky nebo styly. Nevím, proč je ignorováno moje doporučení [#11] Alphard využít odladěné a vyzkoušené řešení.
Coompiik
Profil
Fisir:
Děkuji moc, něco to samé jsem dělal, akorát bez $, proto mi to nefungovalo, musím se v tom více naučit.
Hned jak se naučím poupravím to podle Alphardovo souboru ze sandboxu, zatím ale netuším co tam co dělá.
Každopádně oběma moc děkuji :)


Tak předsejen nic :/ Ukazuje mi to 500 Internal server error :/
Fisir
Profil
Reaguji na Alpharda:
Co je psáno, to je dáno, pouze jsem mu pomohl povolit lomítko (a abych předešel dalším zmateným dotazům, až bude chtít přepisovat adresu s pomlčkou, povolil jsem rovnou všechno).
Coompiik
Profil
Fisir:
Za to moc děkuji, jsem s tím spokojen, všechny soubory mam an subdoménách takže super, ale nefunguje mi to :/ Ukazuje mi to 500 - Internal server error
Fisir
Profil
Reaguji na Coompiika:
Pokud máš přístup k logům, podívej se do nich, zjistíš tam víc. Jinak si můžu tipnout, že ti editor do souboru .htaccess vkládá BOM. Pokud to není tím, ukaž nám celý jeho obsah.
Davex
Profil
Coompiik:
Ukazuje mi to 500 - Internal server error
Protože se Fisirovo přepisovací pravidlo zacyklí.

Použij Diskuse JPW: Řešení některých častějších problémů (FAQ) » Univerzální obecné pravidlo.
Coompiik
Profil
Davex:
Děkuji moc! 100% Funkční! :)

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: