Htaccess - skrátenie url – Webové servery (Apache, IIS...), .htaccess – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Htaccess - skrátenie url – Webové servery (Apache, IIS...), .htaccess – Fórum – Programujte.comHtaccess - skrátenie url – Webové servery (Apache, IIS...), .htaccess – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Majo
~ Anonymní uživatel
85 příspěvků
31. 7. 2011   #1
-
0
-

Dobrý deň, mám jeden problém s htaccess na ktorý hľadám riešenie, návody na internete sú dosť zdĺhavé a nenašiel som v nich presne to čo hľadám, preto sa obraciam na túto komunitu. Chcel by som vedieť, akým spôsobom skrátiť URL napr.:

index.php?k=profil

na niečo ako

index.php/profil alebo poprípade index/profil

Bol by som veľmi rád, ak by mi niekto pomohol. Akosi sa v tých zdĺhavých návodoch nevyznám. Ďakujem

Nahlásit jako SPAM
IP: 78.141.125.–
null_while
~ Moderátor
+6
Věrný člen
31. 7. 2011   #2
-
0
-

#1 Majo

Je několik způsobů, můžeš buď psát pro každou stránku vlastní podmínku, která převede na kratší variantu a nebo můžeš použít příkazy, které to budou převádět automaticky.

RewriteEngine On
RewriteRule ^index/(.*)/$ /index.php?k=$1 [QSA]   

Teď stačí v promenné $k, kterou tuším tvoříš z nějakého GET dosazovat podstránky (moduly). Dávej si pozor na to, aby se nejmenovali stejně jako nějaký adresář. Ovšem můžeš to ošetřit například doplněním: 

RewriteEngine On
Options -MultiViews
RewriteRule ^index/(.*)/$ /index.php?k=$1 [QSA]

Doporučuji však používat p nebo celým page pro lepší orientaci pro další vývojáře nebo pro Tebe do budoucnosti. 

Nezapomeň v php.ini případně na localhostu nastavit (povolit) rewrite mod. 

Nahlásit jako SPAM
IP: 84.16.103.–
WEBNIA.cz - tvorba webových stránek
Paja2
~ Moderátor
+2
Věrný člen
31. 7. 2011   #3
-
0
-

#1 Majo
 

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ ?k=$1

Nahlásit jako SPAM
IP: 213.192.19.–
Majo
~ Anonymní uživatel
85 příspěvků
31. 7. 2011   #4
-
0
-

#2 null_while

#3 Paja2

Ďakujem, za pomoc, vážim, si to, ale akosi neviem prísť na to, prečo mi to nejde.

Po zadaní

index/(nejaká kategória, ktorá by tam bola) mi vyhodí len 404.


Robím pravdepodobne niekde chybu, ale neviem kde. Súbor .htaccess je v priečinku s index.php a súbory na ktoré odkazuje sú v inom priečinku. Ďakujem za pomoc.

Nahlásit jako SPAM
IP: 78.141.125.–
null_while
~ Moderátor
+6
Věrný člen
1. 8. 2011   #5
-
0
-

Potom tedy musíš měnit i cestu v cestách souborů, pokud máš vše jinde, stačí dopsat před /index/, to v jaké složce se nachází. V mém příkladu, který jsem napsal se počítá s tím, že index je přímo v rootu a ostatní stránky také.

To, že ti to hází 404 znamená, že soubor neexistuje což není problém .htaccess, ale php skriptu popřípadě opravdu existence složky. Pokud můžeš, pošli mi php script do PM a napíšu ti to přesně na tvůj skript.

Btw. odkazuj takto: 

<a href="/index/profil/">Profil</a>
Nahlásit jako SPAM
IP: 84.16.103.–
WEBNIA.cz - tvorba webových stránek
Majo
~ Anonymní uživatel
85 příspěvků
1. 8. 2011   #6
-
0
-

No mám to spravené nejako takto:

if(empty($_GET['k'])) {
  $_GET['k'] = "domov";
}
if(file_exists("stranka/" . @$_GET['k'] . ".php") && @$_GET['k'] != 'domov') {
  include "stranka/" . @$_GET['k'] . ".php";
} else {
  include "stranka/domov.php";
}

Hlavný index.php je uložený v roote. Súbory na ktoré odkazuje sú v priečinku "stranka". Ďakujem, za ochotu, som rád že tu nájdem niekoho, kto mi chce pomôcť.

Nahlásit jako SPAM
IP: 78.141.125.–
Majo
~ Anonymní uživatel
85 příspěvků
2. 8. 2011   #7
-
0
-

#5 null_while

Takže asi tak, ako som popísal vyššie, neviem si rady, vďaka za pomoc.

Nahlásit jako SPAM
IP: 95.105.210.–
Řešení
null_while
~ Moderátor
+6
Věrný člen
3. 8. 2011   #8
-
0
-
Vyřešeno Nejlepší odpověď

Několik dní jsem byl mimo bydliště a neměl jsem čas na fórum. Skript vypadá v pořádku, zkusit můžeš například toto řešení, které ti bude automaticky upravovat a maskovat .php v každém souboru mimo podadresáře. Stačí tedy jen potom neodkazovat na .php soubory, ale pouze psát do odkazů /stranka/.

Tedy prvním krokem je přepsat odkazy na stránce z stranka.php na /stranka/ v GET je to jedno, tam stejně posíláš jen $k kde máš uloženo pouze "stranka" a do .htaccess zapiš toto: 

RewriteEngine On
RewriteBase /

RewriteCond %{ENV:REDIRECT_STATUS} !^$
RewriteRule .* - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ $1.php [L]

RewriteCond %{REQUEST_URI} !.[[:alnum:]]+$

RewriteRule ^(.+[^/])$ /$1/ [R=301] 
Nahlásit jako SPAM
IP: 84.16.103.–
WEBNIA.cz - tvorba webových stránek
Majo
~ Anonymní uživatel
85 příspěvků
3. 8. 2011   #9
-
0
-

#8 null_while

Takže ako by mal vyzerať priamy odkaz?

index.php/stranka/ ?

Nahlásit jako SPAM
IP: 78.141.125.–
null_while
~ Moderátor
+6
Věrný člen
3. 8. 2011   #10
-
0
-

Přes get přenášíš název souboru, který máš uložen v adresáři stranka, jak jsem pochopil. O to, aby se soubory kontrolovaly a braly z onoho adresáře se ti stará PHP skript, takže tobě teď stačí odkazovat na název souboru. 

Takže pouze

<a rel="nofollow" href="/kontakty/">Stránka</a>

a kontakty musi byt v adresari stranka jako kontakty.php... potom to bude fungovat ;)

Nahlásit jako SPAM
IP: 84.16.103.–
WEBNIA.cz - tvorba webových stránek
Majo
~ Anonymní uživatel
85 příspěvků
3. 8. 2011   #11
-
0
-

No neviem, ale myslím si, že som všetko spravil dobre, ale akosi stále sa dostanem na 404ku. .htaccess(aj s týmto posledným kódom) mám v roote aj s indexom, súbory php, na ktorý odkazujem sú v priečinku "stranka"

Nahlásit jako SPAM
IP: 78.141.125.–
null_while
~ Moderátor
+6
Věrný člen
3. 8. 2011   #12
-
0
-

Mas povoleny mod_rewrite na localhostu, zapnuty apache, nejmenuje se stranka, kterou promitas v GET stejne jako adresar?  Pokud chces stahni si do pocitace teamviewer, je to freeware soft na sdileni plochy a vzdaleneho ovladani, napis mi do PM a ja ti to primo v tvem pocitaci udelam, samozrejme zdarma.

Nahlásit jako SPAM
IP: 84.16.103.–
WEBNIA.cz - tvorba webových stránek
Majo
~ Anonymní uživatel
85 příspěvků
3. 8. 2011   #13
-
0
-

Mod_rewrite by mal byť určite zapnutý kontroloval som súbor httpd.conf a je tam všetko nastavené ako má byť. Ja používam XAMPP. Nie žiadny adresár sa nevolá rovnako ako nejaký php súbor. Takto vyzerá htaccess ktorý mám v roote:

Options -Indexes
<Files .htaccess>
order allow,deny
deny from all
</Files> 
RewriteEngine On
RewriteBase /

RewriteCond %{ENV:REDIRECT_STATUS} !^$
RewriteRule .* - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ $1.php [L]

RewriteCond %{REQUEST_URI} !.[[:alnum:]]+$

RewriteRule ^(.+[^/])$ /$1/ [R=301] 
Nahlásit jako SPAM
IP: 78.141.125.–
Majo
~ Anonymní uživatel
85 příspěvků
4. 8. 2011   #14
-
0
-

#12 null_while

Ide určite, lebo na localhost-e mi ide aj Joomla, aj iné redakčné systémy používajúce mod_rewrite

Nahlásit jako SPAM
IP: 78.141.125.–
null_while
~ Moderátor
+6
Věrný člen
4. 8. 2011   #15
-
0
-

Smaž prvních 5 řádků v tom souboru. Jsou Ti k ničemu. 

Nahlásit jako SPAM
IP: 84.16.103.–
WEBNIA.cz - tvorba webových stránek
Majo
~ Anonymní uživatel
85 příspěvků
4. 8. 2011   #16
-
0
-

Zmazal som, ale nepomohlo to, niekde robím určite chybu ďakujem za pomoc a za strávený čas ktorý bol venovaný odpovediam. Pokúsim sa to ešte nejako upraviť, ak by sa mi to podarilo, ozvem sa ešte raz vďaka.

Nahlásit jako SPAM
IP: 78.141.125.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý