Skocz do zawartości

Zdjęcie
* * * * * 1 głosy

Nazwa podstrony taka sama jak nazwa katalogu

htaccess

10 odpowiedzi w tym temacie
  • Zaloguj się, aby dodać odpowiedź
RadekKw
0
Neutralna

Napisano 22 lutego 2016 - 15:57

#1

Niby prosty temat ale nie mogę sobie z tym poradzić.

Potrzebuję zrobić stronę (oczywiście z przyjaznymi adresami) o następującej strukturze:

1. moja-domena.pl
2. moja-domena.pl/wykaz-rzeczy
3. moja-domena.pl/wykaz-rzeczy/rzecz-1

W folderze moja-domena.pl umieściłem index.html oraz wykaz-rzeczy.html
Przy pomocy .htaccess załatwiłem sprawę przekierowań z www na bez www oraz pozbyłem się końcówek html.

Utworzyłem folder wykaz-rzeczy a w nim rzecz-1.html. I zaczął się problem. Strona wykaz-rzeczy wpisana bez html nie odpowiada chyba dlatego, że znajduje folder o takiej samej nazwie. Jak zbudować taką strukturę? Czy .htaccess może jakoś w tym pomóc i/lub przeszkodzić?

Proszę o pomoc.


  • 0

Zimistrz

    Stary wyjadacz

  • 465 postów
    • Czas spędzony online: 14d 2h 42m 38s
116
Znakomita!

Napisano 22 lutego 2016 - 23:29

#2

W katalogu umieszczaj plik o domyślnej nazwie index.html, jaki chcesz aby został wywołany wpisując wyłącznie url katalogu.
To jest rozwiązanie najprostsze z możliwych.

Rzecz w tym, że musisz pojąć na jakich zasadach działa webserwer.
Jeśli istnieje katalog, jest on najpierw sprawdzany, a dopiero potem są stosowane reguły przepisywania.
Domyślnie zatem do URL katalogu dodawany jest końcowy slash i wywoływana jest domyślna zawartość katalogu (albo reguły w htaccess, albo od razu domyślny dokument).

O ile pamiętam, poniższa dyrektywa rozwiązuje problem, choć jednocześnie wywołuje inne. Wstaw na początku htaccessa i działaj dalej.

DirectorySlash Off

  • 2

unbreak

    WT Elite

  • 1 937 postów
    • Czas spędzony online: 27d 8h 43m 36s
506
Znakomita!
  • Location/home/unbreak

Napisano 23 lutego 2016 - 08:57

#3

Dokładnie jak Zimistrz pisze, niech struktura twoich plików wygląda mniej więcej w ten sposób:

- index.html

- wykaz-rzeczy/

-- wykaz-rzeczy/index.html

-- wykaz-rzeczy/rzecz-1.html

- wykaz-innych-rzeczy/

 

 

Swoją drogą czy nie lepiej zastosować tutaj pehape? i mieć główny index.php który sprawdza urli i na jego podstawie includuje odpowiednie pliki, w którym masz jeden wspólny head i cały layout strony, zamiast osobnych całych plików html? Jeżeli przyjdzie Ci zmienić jedną literkę np meta title, to będziesz musiał teraz edytować wszystkie pliki, a dzięki pehape tylko jeden :)


  • 1

webDeveloper


RadekKw
0
Neutralna

Napisano 23 lutego 2016 - 20:03

#4

Dzięki za wskazówki.

Próbowałem wcześnie umieścić index.html w podkatalogu i otrzymuję błąd:

You don't have permission to access /wykaz-rzeczy/.html on this server. Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

Nie mogę się odwołać moja-domena.pl/wykaz-rzeczy tylko muszę napisać moja-domena.pl/wykaz-rzeczy.html a tak nie chcę.

Dyrektywa DirectorySlash Off też nie działa.

Może mam złe dyrektywy usuwające końcówki html:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]

Proszę o pomoc.


Zapomniałem napisać, że mogę też odwołać się do tego pliku tak: moja-domena.pl/wykaz-rzeczy/index lub moja-domena.pl/wykaz-rzeczy/index.html.

Ja chcę aby działał adres najprostszy, czy: moja-domena.pl/wykaz-rzeczy.

Chyba coś jest nie tak z htaccess.


  • 0

Zimistrz

    Stary wyjadacz

  • 465 postów
    • Czas spędzony online: 14d 2h 42m 38s
116
Znakomita!

Napisano 24 lutego 2016 - 00:13

#5

You don't have permission to access /wykaz-rzeczy/.html on this server

 

Bacz dokładnie jakie URI wywołujesz, pogrubiłem je w cytacie.
Sprawa jest wbrew pozorom skomplikowana, choć to co chcesz osiągnąć wydaje się z pozoru logicznie, proste i zrozumiałe.

Tak jak Unbreak, sugerowałbym również użycie jakiegoś języka skryptowego, co przyszło mi na myśl już na samym początku.

Dzięki temu unikniesz problemów jakie pojawią się po tym, jak pokonasz to, z czym aktualnie walczysz.

Co więcej, zrób krok dalej zakładając że rozwiązałeś aktualny problem i zastanów się nad czym będziesz pracował dalej.

Jestem pewien że rozwiązanie obecnej sprawy na nic się nie przyda, bo porzucisz je ze względu na obostrzenia i to, że zmienisz całkowicie podejście.

 

Wracając do php - czy w czymkolwiek byś to robił - możesz bez problemu ładować dokument o takiej samej nazwie jak katalog, wywołując jedynie URL katalogu.
Samymi regułami mod_rewrite tego nie zrobisz.

 

I tutaj rzecz ostatnia, która polega na tym, że reguły jak najbardziej działają.
Ale! Czyść cache przeglądarki lub restartuj ją jeśli zmieniasz reguły przepisywania, bowiem te są zapamiętywane.
Sprzeczność reguł również może mieć miejsce, bo wywołujesz plik z końcówką html, którego dotyczy reguła przepisywania usuwająca rozszerzenie.
Co z kolei doprowadza do tego że wywołujesz plik o takiej samej nazwie jak katalog, a tu już może działać reguła usuwająca tzw. trailing slash.
I w konsekwencji nie dostajesz nic.

Wyłącz najpierw usuwanie rozszerzenia i sprawdź jak zachowuje się dyrektywa usuwająca końcowy slash przy wywołaniu w katalogu.
Umieszczenie domyślnego dokumentu również pomoże zrozumieć to i owo.


  • 2

RadekKw
0
Neutralna

Napisano 03 marca 2016 - 16:58

#6

Nie mogłem sobie z tym poradzić, więc ostatecznie zdecydowałem się zmienić strukturę na:

- index.html

- wykaz-rzeczy.html

-- rzecz/rzecz-1.html

-- rzecz/rzecz-2.html

Tak czy inaczej jeszcze raz dzięki za pomoc.


  • 0

unbreak

    WT Elite

  • 1 937 postów
    • Czas spędzony online: 27d 8h 43m 36s
506
Znakomita!
  • Location/home/unbreak

Napisano 04 marca 2016 - 10:23

#7

Widzę że bronisz się rękami i nogami by nie wykorzystać do tego php.


  • 2

webDeveloper


Kindral30
-3
Neutralna

Napisano 15 marca 2016 - 22:08

#8

dokladnie omijaj php


  • -3

writen

    Stary wyjadacz

  • 458 postów
    • Czas spędzony online: 29d 22h 59m 44s
133
Znakomita!

Napisano 16 marca 2016 - 14:23

#9
dokladnie omijaj php


A dlaczego?
  • 0

logo-green-dark.png


RadekKw
0
Neutralna

Napisano 17 marca 2016 - 17:32

#10

Po prostu nie znam PHP. Za to dość dobrze znam CSS i HTML i do tego trochę JS. Myślę, że w ten sposób można zrobić ładną i sprawną stronę.

Nie chciałem też komplikować strony ani korzystać z CMS'ów typu Joomla, WP, itp.

Pracę już skończyłem, więc jeśli chcecie ocenić efekt (RadoslawKwiatkowski.pl) to będę wdzięczny za uwagi, również te krytyczne.


  • 0

zonic

    WT Elite

  • 2 911 postów
    • Czas spędzony online: 134d 2h 28m 23s
472
Znakomita!
  • LocationToruń

Napisano 17 marca 2016 - 23:00

#11

Po prostu nie znam PHP. Za to dość dobrze znam CSS i HTML i do tego trochę JS. Myślę, że w ten sposób można zrobić ładną i sprawną stronę.

Nie chciałem też komplikować strony ani korzystać z CMS'ów typu Joomla, WP, itp.

Pracę już skończyłem, więc jeśli chcecie ocenić efekt (RadoslawKwiatkowski.pl) to będę wdzięczny za uwagi, również te krytyczne.

Prośba do Ciebie o nie mieszanie wątków i założenie tematu w dziale stron do oceny: http://web-talk.pl/f...trony-do-oceny/

Z góry dzięki! :)


  • 0





Podone tematy Collapse

  Temat Forum Autor Podsumowanie Ostatni post

Również z jednym lub większą ilością słów kluczowych: htaccess

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych