Autor | Zpráva | ||
---|---|---|---|
miropiro Profil |
#1 · Zasláno: 21. 1. 2016, 09:06:12
Dobrý den, kolegyně si vymyslela, že by chtěla na stránce fermentor.net url podstránek ve stylu podle hlavního menu. Tím mám na mysli, že v hlavním menu nahoře bude odkaz na fermentor.net/applications, ovšem podmenu, které se zobrazuje po najetí myší na text Applications, by pak mělo odkazovat na fermentor.net/applications/fungal-culture
Já však mám v rámci souboru htacess definovaný kořenový adresář pro odkazy, ale přesto si říkám, lze nějak docílit, aby fungovaly odkazy (klidně i jen virtuálně) na podadresáře? |
||
Keeehi Profil |
Melo by to jít. Jak vypadá váš htaccess?
+ jak pokud přidáte popis adresářové struktury, tak to bude ještě lepší. |
||
miropiro Profil |
#3 · Zasláno: 21. 1. 2016, 10:54:16
„Melo by to jít. Jak vypadá váš htaccess?“
Co nás zajímá, je tato část kódu RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L] RewriteBase / Jinak v rámci kořenového adresáře je pár složek, povětšinou složky s obrázky, pdfky a css věci. |
||
Keeehi Profil |
#4 · Zasláno: 21. 1. 2016, 11:18:21
Pokud tedy vytvoříš adresář applications a v něm soubor fungal-culture.php, mělo by to fungovat s aktuálním htaccess souborem.
|
||
miropiro Profil |
Keeehi: Což o to, tohle by fungovalo, ale pokud se nepletu, tak musím do toho adresáře nahrát i složky týkající se css souborů a tak? Nebo na ně odkazovat absolutní cestou přes url? Raději bych druhou možnost, ale nějak mi nejde tohle podchytit...
Vlastně i obrázky, footer soubor taky...to ale v praxi znamená, že pokud to nepůjde nějak relativní cestou kompletně provázat, tak pak budu mít třeba i tři podsložky se stejnými soubory, které budu muset vždy změnit... |
||
Keeehi Profil |
Stačí přidat lomítko na začátek.
<link rel="stylesheet" type="text/css" href="/file.css"> |
||
miropiro Profil |
Keeehi: To lomítko, no jo, to asi pomůže, problém je ovšem v tom, že já v tom souboru soubory head, header a footer.php "volám" přes php include
<?php include ("head.php") ?> A ačkoliv obrázek to již bere, tak tyto soubory nikoliv přes lomítkovou variantu... Poradil jsem si nakonec sám, koukal jsem do této diskuse a je třeba před head.php napsat ../ Pak už to tahá správně :-) |
||
miropiro Profil |
#8 · Zasláno: 21. 1. 2016, 17:44:37
Jinak ještě se pak hodilo, aby název souboru nebyl stejný jako název složky, měli jsme tam soubor features.php, tak jsem kolegyni upozornil, že nemohu dát složku features, protože jinak bude odkaz na features bez přípony "php" vést na ten adresář a bude to haprovat. Takže z mé strany vyřešeno a budu tak postupovat i u dalších webů, respektive stránek na tomto webu.
|
||
Časová prodleva: 14 dní
|
|||
miropiro Profil |
#9 · Zasláno: 4. 2. 2016, 09:26:01
Tak samozřejmě kolegyně by si přála, kdyby i stránka fermentor.net/features-minifor se jmenovala fermentor.net/features, jenže toto mi teď nepůjde, protože "features" je současně název podadresáře. Mohl bych sice linkovat na features.php, ale to pak nevypadá tak elegantně. Jak tedy přimět stránku k tomu, aby v kořenovém adresáři existoval soubor php se stejným názvem jak podadresář, který obsahuje další stránky? Děkuji moc...
|
||
Kajman Profil |
#10 · Zasláno: 4. 2. 2016, 09:55:25
miropiro:
Pokud je problém v automatickém doplňování lomítka při skutečném adresáři, zkuste do .htaccess přidat DirectorySlash Off |
||
miropiro Profil |
#11 · Zasláno: 4. 2. 2016, 12:15:17
Kajman: Tohle evidentně nestačí. Zkoušel jsem hledat návod, našel jsem si tento článek www.dasm.cz/clanek/neprustrelny-url-rewrite, ve kterém se na závěr uvádí kód
DirectorySlash Off RewriteEngine On RewriteOptions AllowNoSlash RewriteCond $1 ^(css|img|js)/.+ RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^(.*)$ - [L] RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] Tento kód však přináší potíže, protože mi následně stránky začnou hlásit chybu: Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. |
||
Kajman Profil |
miropiro:
„Internal Server Error“ Tipnul bych, že Vaše verze apache nepodporuje RewriteOptions nebo se to zacyklí. Mrkněte do error logu. A skripty tedy máte předělané, že již se nevolá interně features.php, ale pro všechny požadavky se volá index.php? Podstrkávání v [#11] a v [#3] je totiž zásadně jiné. |
||
miropiro Profil |
#13 · Zasláno: 4. 2. 2016, 13:28:19
No a nebude to náhodou (že se tak blbě ptám) tím, že web používá Apache/2.2.15 (Cloud Linux) Server? Ten návod, co jsem našel, je pro verzi Apache 2.4.
|
||
Kajman Profil |
#14 · Zasláno: 4. 2. 2016, 16:18:30
Kdybyste ten návod četl, tak víte, že to není žádná náhoda a že AllowNoSlash je možnost RewriteOptions až od verze 2.4.0.
|
||
Časová prodleva: 9 let
|
0