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 |
#2 · Zasláno: 27. 9. 2015, 23:50:53
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 |
#3 · Zasláno: 27. 9. 2015, 23:54:45
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 |
#4 · Zasláno: 28. 9. 2015, 00:00:47
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 |
#5 · Zasláno: 28. 9. 2015, 00:02:15
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 |
#6 · Zasláno: 28. 9. 2015, 00:07:52
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 |
#7 · Zasláno: 28. 9. 2015, 00:11:54
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 |
#8 · Zasláno: 28. 9. 2015, 00:16:03
Jo táák... A nepříjdu tím o post požadavky?
|
||
bestik_63 Profil |
#9 · Zasláno: 28. 9. 2015, 00:19:34
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 |
#11 · Zasláno: 28. 9. 2015, 02:07:34
Změnou toho reguláru, konkrétně tady chybí povolení lomítka.
Můžete se inspirovat .htaccess souborem z Nette sanboxu. |
||
bestik_63 Profil |
#12 · Zasláno: 28. 9. 2015, 10:29:31
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 |
#13 · Zasláno: 28. 9. 2015, 20:41:47
Děkuji moc všem :)
|
||
Časová prodleva: 3 dny
|
|||
Coompiik Profil |
#14 · Zasláno: 1. 10. 2015, 22:41:44
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] |
||
Fisir Profil |
Reaguji na Coompiika:
Musíš v regulárním výrazu povolit i lomítko. |
||
Coompiik Profil |
#16 · Zasláno: 2. 10. 2015, 17:46:02
Fisir: To je ten problém nějak nevím jak.
|
||
Fisir Profil |
#17 · Zasláno: 3. 10. 2015, 10:40:31
Reaguji na Coompiika:
RewriteRule ^(.*)$ /index.php?stranka=$1 [L,QSA] |
||
Alphard_ Profil * |
#18 · Zasláno: 3. 10. 2015, 10:48:53
|
||
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 |
#20 · Zasláno: 3. 10. 2015, 19:53:54
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 |
#22 · Zasláno: 3. 10. 2015, 21:27:20
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 |
#23 · Zasláno: 3. 10. 2015, 21:53:43
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 |
#24 · Zasláno: 3. 10. 2015, 23:46:00
Davex:
Děkuji moc! 100% Funkční! :) |
||
Časová prodleva: 9 let
|
0