![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 20.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
Sprawa jest taka: Mam stronę na jakimś tam CMS (dostałem, nie tworzyłem), i plik index.php, który wczytuje jakiś tam plik .tpl, w którym jest: Kod <title>{strip} {if $_SERVER["REQUEST_URI"] == '/' or $_SERVER["REQUEST_URI"] == '/pl'}XXXXXX {elseif $_SERVER["REQUEST_URI"] == '/Ofirmie/'} O firmie - XX {elseif $_SERVER["REQUEST_URI"] == '/Oferta/'} Oferta - XX (i dalej podobnie, potem </title> i to samo z resztą treści strony Pod adresem "/" strona wyświetla wszystko, co powinna. Jednak ze wszystkimi "/costam/" sobie nie radzi. Wyskakuje z serwera komunikat, że plik/katalog "/costam/" nie istnieje. Tak na mój początkujący rozum, problemem jest brak .htaccess i jakiejś reguły, która przekieruje wszystkie adresy inne niż "/" na "/" a php będzie wiedziało jaki był adres dzięki $_SERVER["REQUEST_URI"], które w .htaccess pewnie się jakoś ustawia. Nie wiem tylko zupełnie, jak to osiągnąć. Ani nawet, czy dobrze myślę... Dlatego proszę o pomoc :-) Ten post edytował SirValeq 20.08.2016, 13:26:07 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 20.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
Trochę wyedytowałem pierwszy post. Nie chodzi o to, że nie działają adresy "/costam" a "/costam/" już tak, tylko ani jeden ani drugi.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A tak?
Kod {elseif $_SERVER["REQUEST_URI"]|lower == '/ofirmie/'} Oczywiście dla adresu z kończącym slashem. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 20.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
Też nic.
No i w ogóle śmieszna sprawa. Skopiowałem sobie tę stronę na zupełnie inny serwer (inny hosting) i tutaj objaw jest inny. Otóż tak samo dobrze wyświetla się strona główna, zaś wszystkie adresy inne, np. "http://domena.com/Ofirmie/" wyświetlają też tylko stronę główną. Dla przypomnienia, na tamtym serwerze takie adresy generują błąd i komunikat serwera o nieistnieniu takiego pliku. Na obu serwerach nie ma żadnego pliku .htaccess. Dla mnie to magia w tym momencie :-D |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
.htaccess może być ukryty.
Plik powinien zawierać coś takiego: Kod RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php wtedy REQUEST_URI zostanie przerzucony do index.php bez traktowania go jako nieistniejących katalogów. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 20.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
Umieściłem plik .htaccess z tą treścią w obu miejscach (w katalogu głównym, tam gdzie index.php) i... zupełnie nic się nie zmieniło :-(
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jaki adres wywołujesz? Zmień domenę i pokaż pełny adres.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 20.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
Strona jest pod adresami: http://minwood.com.pl/ oraz http://minwood.walewicz.com/
Dokładnie te same pliki i baza danych (podmienione tylko dane dostępowe do niej w pliku konfiguracyjnym CMSa). Aby zobaczyć, co się dzieje, wystarczy kliknąć w dowolną pozycję menu. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
W drugim wygląda na to, że jest .htaccess.
Czy zmieniłeś fragment w szablonie na: Kod {elseif $_SERVER["REQUEST_URI"]|lower == '/ofirmie/'} ? |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 20.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
Tak, w obydwu miejscach dla "Ofirmie". Plik .htaccess jest w obu miejscach, jeszcze sprawdzałem. Nie wiem, dlaczego działają inaczej.
Do czegoś doszedłem. Zauważyłem, że ten CMS w pliku index.php pobiera dwie zmienne przez $_GET: 'module' i 'mode'. Przejrzałem pliki źródłowe CMSa, żeby zobaczyć, co tam trzeba wpisać i np. URL http://minwood.walewicz.com/index.php?modu...mp;mode=subpage pokazuje tę treść, co trzeba (lecz nadal złe title i description). Ale jednak linki w menu są w postaci "domena.com/Kontakt/", czyli coś gdzieś na tym poprzednim serwerze, gdzie ta strona była, musiało te zmienne jakoś generować, a url zostawiać w tej postaci z ukośnikami. Jak to mogło być zrobione? |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Zgubiłeś gdzieś oryginalny .htaccess.
Na podstawie tego co podałeś można wywnioskować jego fragment: Kod RewriteCond %{REQUEST_URI} ^/([a-z]+)/([a-z]+)/$ [NC] RewriteRule ^(.*)$ index.php?module=%1&subpage=%2 RewriteCond %{REQUEST_URI} ^/([a-z]+)/$ [NC] RewriteRule ^(.*)$ index.php?module=%1 Niemniej warunki w szablonie są bez sensu skoro i tak jest wykonane przepisywanie adresów (można warunkować zmiennymi z $_GET, a nie na podstawie $_REQUEST_URI). |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 20.08.2016 Ostrzeżenie: (0%) ![]() ![]() |
Miałeś rację. Brakowało oryginalnego .htaccess, który musiał być ukryty i nie został skopiowany razem z resztą całej strony. Udało mi się go uzyskać.
Dzięki za poświęcony czas (IMG:style_emoticons/default/wink.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 21:04 |