Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][Access]REQUEST_URI a htaccess - pytanie
SirValeq
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


https://www.google.pl/search?q=htaccess+add+trailing+slash
Go to the top of the page
+Quote Post
SirValeq
post
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.
Go to the top of the page
+Quote Post
trueblue
post
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.
Go to the top of the page
+Quote Post
SirValeq
post
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
Go to the top of the page
+Quote Post
trueblue
post
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.
Go to the top of the page
+Quote Post
SirValeq
post
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 :-(
Go to the top of the page
+Quote Post
trueblue
post
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.
Go to the top of the page
+Quote Post
SirValeq
post
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.
Go to the top of the page
+Quote Post
trueblue
post
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/'}

?
Go to the top of the page
+Quote Post
SirValeq
post
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?
Go to the top of the page
+Quote Post
trueblue
post
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).
Go to the top of the page
+Quote Post
SirValeq
post
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)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 21:04