Skocz do zawartości

Witamy na polskim forum Contao
Zarejestruj się teraz, aby skorzystać ze wszystkich funkcji forum. Kiedy się zalogujesz, będziesz mógł tworzyć tematy, pisać posty, rozdawać punkty reputacji, korzystać z prywatnych wiadomości i zarządzać swoim profilem. Jeśli posiadasz już konto, zaloguj się - w przeciwnym wypadku zarejestruj się już teraz!
Zdjęcie

Nietypowy problem z adresami url


  • Zaloguj się, aby dodać odpowiedź
9 odpowiedzi w tym temacie

#1
Muszyk

Muszyk

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 52 postów

Mam następujący problem:

 

- istnieje obecnie strona oparta na contao po dajmy na to adresem mojastrona.pl

- tworzę obecnie nową stronę, która ma tymczasowy adres nowa.mojastrona.pl

- pojawiła się jednak konieczność aby ta nowa pojawiła się pod adresem mojastrona.pl/nowa

 

Oczywiście mógłbym zrobić przekierowanie z mojastrona.pl/nowa na nowa.mojastrona.pl, ale po wejściu na adres mojastrona.pl/nowa i tak się wyświetli nowa.mojastrona.pl.

 

Wymyśliłem aby przenieść nową instalację conto do katalogu starej o nazwie nowa, tak aby była dostępna pod adresem mojastrona.pl/nowa

 

Pytanie tylko jak skonfigurować contao aby to zadziałało jeśli na sterej są włączone przyjazne adresy i włączone foldery URL.


  • 0

#2
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski

1. W pliku /system/config/pathconfig.php musisz określić relatywną ścieżkę do Contao, w tym wypadku będzie to "/nowa".

 

2. W pliku .htaccess musisz określić to samo dla definicji RewriteBase, tutaj również będzie to "/nowa".


  • 0

Codefog - Contao web development


#3
Muszyk

Muszyk

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 52 postów

Dziękuje za podpowiedź :)


  • 0

#4
Muszyk

Muszyk

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 52 postów

w pliku .htaccess strony znajdującej się w katalogu nowa ustawiłem

RewriteBase /nowa

 

w pliku nowa/system/config/pathconfig.php też ustawiłem return '/nowa';

 

Strona działa, instalator się uruchamia, mogłem dokonać konfiguracji bazy danych, ale nie działa panal administracyjny, przeglądarka daje komunikat o tym, że strona zawiera pętlę przekierowań: ERR_TOO_MANY_REDIRECTS

 

Problem sam się naprawił


Użytkownik Muszyk edytował ten post 18 marca 2016 - 00:12

  • 0

#5
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski

Problem z pętlą przekierowań prawdopodobnie był spowodowany tym, że byłeś zalogowany do Contao, które jest w folderze root domeny. W takim wypadku bywają problemy z zalogowaniem do Contao, które jest w podkatalogu:

 

www.domena.pl/contao/ <--- tu jesteś zalogowany

www.domena.pl/nowa/contao/ <--- tu jest problem z pętlą


  • 0

Codefog - Contao web development


#6
Muszyk

Muszyk

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 52 postów

Potrzebuję jeszcze jednej podpowiedzi odnośnie adresów i htaccess, a mianowicie, mój .htaccess jest w tym momencie pusty, w ustawieniach contao mam zaznaczone Przyjazne URL i Foldery URL. 

Jednak mam potrzebę dodania do htaccess:

RewriteEngine On
RewriteRule ^detect.js$ detect.php

samo RewriteEngine On powoduje, że nie można znaleźć żadnej podstrony

 

Problem ustępuje po wyłączeniu Przyjaznych URL, więc tutaj coś się gryzie.

 

 

Może znowu trzeba coś modyfikować w RewriteBase?

 

Po zmianie nazwy .htaccess.default na .htaccess zgodnie ugestią z podpowiedzi do Przyjaznych urli, jest to samo.

 

Podejrzewam, że albo robię jakiś głupi błąd albo przyjazne linki z panelu administracyjnego nie będą działać z rewriteEngine w .htaccess?

 

 

Teraz sprawdziłem, że problem z /htaccess pojawia się gdy w ustawieniach usunę Suffix URL, którym domyślnie jest .html. Jednak adresy na stronie mają być bez rozszerzenia .html


Użytkownik Muszyk edytował ten post 25 marca 2016 - 00:48

  • 0

#7
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski

.htaccess nie może być pusty, jeśli mają działać przyjazne adresy URL. Przy zmianie suffixa również musisz edytować .htaccess w odpowiednim miejscu:

 

https://github.com/c...fault#L240-L264


  • 0

Codefog - Contao web development


#8
Muszyk

Muszyk

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 52 postów

Problem rozwiązany, dodałem drugi .htaccess do katalogu /contao. A poniższy wpis zostawiam dla potomności :)

 

--------------

 

Ale działa świetnie bez .htaccess.

 

 - Załóżmy, że mam w domyślnej konfiguracji panelu i pustym .htaccess adres: moja_strona.pl/index.php/kontakt.html

 - po zaznaczeniu w panelu: Przyjazne URL, Włącz foldery URL, Używaj parametru auto_item adres wygląda: moja_strona.pl/kontakt.html

 - ponieważ nie chcę mieć w adresie .html po wyczyszczeniu pola Suffix URL i nadal pustym .htaccess ten adres będzie wyglądał: moja_strona/kontakt

 

I przyjazne linki działają.

 

Dodanie zawartości w .htaccess takiej jak w .htaccess.default zmienia sytuację o tyle, że muszę uzupełnić pole Suffix URL co psuje wygląd moich adresów.

 

W pliku .htaccess potrafię zmienić sufix z .html na naprzykład .abc poprzez modyfikację linii: RewriteRule .*\.abc$ index.php [L]   # URL suffix .html i modyfikację pola Suffix URL na .abc. Ale do tego nie jest potrzebny wcale .htaccess.

 

Ale nie potrafię pozbyć się suffixu tak jak ma to miejsce gdy nie jest używany .htaccess. A niestety muszę go teraz użyć.

 

Czy jest to w ogóle możliwe w takim układzie, bo może siedzę nad tym drugie dzień zupełnie bez sensu? :)

 

-------

Może uzupełnię, udaje się jeśli odkomentuję linie:

 

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
 
ale wtedy nie mogę się dostać do panelu administracyjnego. Po przejściu przez formularz logowania mam adres /contao/main.php i komunikat Nie znaleziono strony

Użytkownik Muszyk edytował ten post 25 marca 2016 - 10:08

  • 0

#9
Muszyk

Muszyk

    Doświadczony

  • Zarejestrowani
  • PipPipPip
  • 52 postów

I przedwczesna była moja radość. .htaccess zablokował dostęp do css, grafik, js, ...

Wyświetla się jedynie tekst bez formatowania i grafik. Nie zauważyłem tego wcześniej przez cache przeglądarki.

 

---------

 

aby to działało należy przed:

 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule .* index.php [L]

dodać dodatkową linijkę:

RewriteCond %{REQUEST_FILENAME} !-f

Użytkownik Muszyk edytował ten post 25 marca 2016 - 11:36

  • 0

#10
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski

To ja może podsumuję: żeby usunąć suffix należy w ustawieniach wyczyścić pole suffixu oraz skopiować odpowiednie linie z .htaccess.default z zastosowaniem instrukcji tam zawartych. W skrócie, powinien wyglądać mniej on więcej (oczywiście po części) tak:

RewriteCond %{REQUEST_FILENAME} !\.(htm|php|js|css|map|htc|png|gif|jpe?g|ico|xml|csv|txt|swf|flv|mp4|webm|ogv|mp3|ogg|oga|eot|otf|tt[cf]|woff2?|svgz?|pdf|gz)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

  • 0

Codefog - Contao web development





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

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