• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Include PHP w pliku html?

Object Storage Arubacloud
0 głosów
1,213 wizyt
pytanie zadane 31 stycznia 2019 w PHP przez Suska Łukasz Użytkownik (560 p.)

Posiadam stronę w .html , jako że się rozrasta chciałem dodać odwołanie w kodzie strony do oddzien]lnego pliku z menu nawigacyjnym.

Już wiem że mozna zrobic to w php poprzez

                            <?php include('nav.html'); ?>

działa super, z tym że trzeba wszystkie pliki zmienić na php. Pytań mam multum, ale narazie jedno:

Czy jest możliwość obsługi kodu php przez plik html?

Wygooglałem że mozna to zrobic poprzez plik .htaccess ale u mnie to nie działa.

komentarz 31 stycznia 2019 przez Suska Łukasz Użytkownik (560 p.)
edycja 31 stycznia 2019 przez Suska Łukasz

I PA DA BUMMM CSSSSS smiley Problem rozwiązany, dziękuje wszystkim za wkład

Na początek rozwiązaniem powyższego problemu mogłoby być:

Użycie z którejś z poniższych reguł, ale u mnie one nie działały.

AddType application/x-httpd-php .html .htm



AddType application/x-httpd-php5 .html .htm



AddHandler application/x-httpd-php .html .htm 

Dlatego rozwiązaniem mojego problemu jest zmiana rozszerzenia plików z .html na .php

wstawienie w miejsce nawigacji w plikach .php

<ul>
             <?php include('nav.html'); ?>

  </ul>

kierujący do osobnego pliku nav.html z nawigacją strony

Dodatkowo użycie w pliku .htaccess

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteRule ^index.(php|html|htm)$ / [R=301,L]
RewriteRule ^([a-z0-9-_]+)/index.(php|html|htm)$ /$1/ [R=301,L]

RewriteRule ^([^\.]+)$ $1.php [NC,L]

RewriteCond %{THE_REQUEST} \.php
RewriteRule ^(.*)\.php$ /$1 [R=301,L]

RewriteCond %{THE_REQUEST} \.html
RewriteRule ^(.*)\.html$ /$1 [R=301,L]

DirectoryIndex index.html index.htm default.htm index.php index.php3 index.phtml index.php5 index.shtml mwindex.phtml

Co rozwiązuje:

Pliki z końcówką .php wyświetlają się również po wpisaniu końcówki .html lub po nie wpisaniu żadnej końcówki.

Powyższy kod usuwa końcówki .php i .html. Linki wyświetlają się bez końcówek, niezależnie jak je wpiszemy w wyszukiwarce.

Raz jeszcze dzięki wszystkim za pomoc w dojściu do rozwiązania

 

2 odpowiedzi

+1 głos
odpowiedź 31 stycznia 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
Generalnie się da, wystarczy że kod przejdzie przez interpreter PHP i jakiekolwiek by miał rozszerzenie to zostanie obsłużony. Jednak nie zadziała Ci to wtedy, gdy włączysz taki plik w samej przeglądarce (prosto mówiąc: klikając na niego dwa razy, czyli uruchamiając bez odpowiednio skonfigurowanego serwera). Żeby było jasne: ten plik, jak to nazwałeś, nie będzie obsługiwał kodu PHP, po prostu zostanie wcześniej zinterpretowany i dlatego zadziała. Pytanie czy to ma sens, nie prościej po prostu od razu zmienić rozszerzenie albo jeszcze lepiej całkowicie je usunąć tworząc bardziej przyjazne adresy?

Jeśli chcesz to ja nigdy tego nie robiłem, Google podpowiada .htaccess jak mówiłeś: https://stackoverflow.com/a/4687217 ale zapewne to wszystko zależy od konfiguracji serwera www.
komentarz 31 stycznia 2019 przez Suska Łukasz Użytkownik (560 p.)
1 - Reguły ze stackoverflow u mnie nie działaja, juz je próbowałem.

2 -Mogę zamienić rozszerzenie na php, i już nawet mam przygotowaną takę wersję, ale tu pojawiają się kolejne pytania.

Bo stronę tą prowadzę już od 5 lat i nie chce stracić pozycji w google.

regułą w .htaccess:

RewriteRule ^(.*)\.html$ $1.php [L]

mogę ustawić że strona będzie odczytywana równiez z rozszerzeniem .html, ale wtedy strona się dubluje bo jest dostępna pod obydwoma rozszerzeniami a poza tym nie mogę usunąć końcówek.

3 - Obecenie w html mam usuniete końcówki, jednak po przejściu na php nie jestem w stanie tego osiągnąć, zwłaszcza biorąc pod uwagę zę dodaje powyzszy kod.
komentarz 31 stycznia 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
1. Pewnie może być konieczność w jakiś sposób dostosowania do konfiguracji serwera, ale tu nie za bardzo pomogę, bo sam tego nigdy nie robiłem.

2. Bez problemu możesz dodać do reguły przekierowanie i treść nie będzie zdublowana.

3. Nie zrozumiałem czemu i czego nie jesteś w stanie osiągnąć. Nie powinno być żadnego problemu z usunięciem rozszerzeń czy to .html czy .php, kwestia odpowiednich reguł.
komentarz 31 stycznia 2019 przez Suska Łukasz Użytkownik (560 p.)

jak dodaje do pliku .htaccess tą regułę

 RewriteRule ^(.*)\.html$ $1.php [L]

to przestaje mi działać usuwanie końcówek

komentarz 31 stycznia 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
Może pokaż cały plik włącznie z poprzednią regułą? Flaga [L] może tu mieszać, bo przerywa wykonywanie kolejnych.
komentarz 31 stycznia 2019 przez Suska Łukasz Użytkownik (560 p.)

To jeśli mógłbyś pomóc to obecnie mój plik .htaccess  wygląda tak

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteRule ^index.(php|html|htm)$ / [R=301,L]
RewriteRule ^([a-z0-9-_]+)/index.(php|html|htm)$ /$1/ [R=301,L]

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

RewriteRule ^([a-z0-9-_]+)$ https://%{HTTP_HOST}/$1/ [R=301]

RewriteCond %{HTTP_HOST} ^suerteprzewodnicy.pl [NC]
RewriteRule ^(.*)$ https://www.suerteprzewodnicy.pl/$1 [L,R=301]

Redirect 301 /warszawa/warszawa https://www.suerteprzewodnicy.pl/warszawa/zwiedzanie-warszawy
Redirect 301 /warszawa/zwiedzanie_warszawy_z_przewodnikiem https://www.suerteprzewodnicy.pl/warszawa/zwiedzanie-warszawy
Redirect 301 /warszawa/wycieczki-autokarem https://www.suerteprzewodnicy.pl/warszawa/wycieczki-jednodniowe-warszawa
Redirect 301 /warszawa/przewodnik-warszawa https://www.suerteprzewodnicy.pl/warszawa/przewodnik-po-warszawie
Redirect 301 /Zwiedzanie_Warszawy_jednodniowe https://www.suerteprzewodnicy.pl/warszawa/przewodnik-po-warszawie
Redirect 301 /warszawa/wycieczka-warszawa https://www.suerteprzewodnicy.pl/warszawa/wycieczki-tematyczne
Redirect 301 /warszawa/przewodnik-po-warszawie-wnetrza https://www.suerteprzewodnicy.pl/warszawa/zwiedzanie-wnetrz
Redirect 301 /Wycieczki_tematyczne_po_Warszawie https://www.suerteprzewodnicy.pl/warszawa/wycieczki-tematyczne
Redirect 301 /gdansk/zwiedzanie-gdansk https://www.suerteprzewodnicy.pl/gdansk/zwiedzanie-trojmiasta

RewriteCond %{THE_REQUEST} \.html
RewriteRule ^(.*)\.html$ /$1 [R=301,L]

Jest on jeszcze ustawiony pod koncówkę .html

Jak zrobić(gdzie umieścić)  - RewriteRule ^(.*)\.html$ $1.php [L]

i w jaki sposób sparawić aby nie wyświetlały się linki z końcówką .php (obecnie z .html się nie wyświetlaja)

komentarz 31 stycznia 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
Widzę że nie zdążyłem i już udało się rozwiązać problem - super :)
0 głosów
odpowiedź 31 stycznia 2019 przez Kacper Sas Dyskutant (8,460 p.)

Już komuś podsyłałem to rozwiązanie. Przy nim PHP jest zbędne.

https://codepen.io/anon/pen/PXXKQN

komentarz 31 stycznia 2019 przez HaKIM Szeryf (87,590 p.)
Na Tw. miejscu, o ile bym na to wpadł będąc już na skraju załamania, poszedłem po dokumentacje:

https://httpd.apache.org/docs/2.4/howto/htaccess.html

https://www.askapache.com/htaccess/

I sprawdzał linijka po linijce co się tam właściwie dzieje.
komentarz 31 stycznia 2019 przez Suska Łukasz Użytkownik (560 p.)

dobra z tą regułą którą podałeś

RewriteRule ^([^\.]+)$ $1.php [NC,L]

działa trochę lepiej.

Strony sa dostępne wprawdzie także z końcówką .php ale juz po wpisaniu .html przekierowuje stronę do przyjaznego adresu bez koncówki .html

Zostało pozbyc się jeszcze .php

Ps. dodam dla potomnych że

Przy użyciu samej reguły

RewriteRule ^([^\.]+)$ $1.php [NC,L]

strona nie wyświetla plików z rozszerzeniem html
aby to rozwiązać trzeba dodac

RewriteCond %{THE_REQUEST} \.html
RewriteRule ^(.*)\.html$ /$1 [R=301,L]

 

komentarz 31 stycznia 2019 przez Suska Łukasz Użytkownik (560 p.)

I PA DA BUMMM CSSSSS smiley Problem rozwiązany, dziękuje wszystkim za wkład

Rozwiązanie problemu

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteRule ^index.(php|html|htm)$ / [R=301,L]
RewriteRule ^([a-z0-9-_]+)/index.(php|html|htm)$ /$1/ [R=301,L]

RewriteRule ^([^\.]+)$ $1.php [NC,L]

RewriteCond %{THE_REQUEST} \.php
RewriteRule ^(.*)\.php$ /$1 [R=301,L]

RewriteCond %{THE_REQUEST} \.html
RewriteRule ^(.*)\.html$ /$1 [R=301,L]

DirectoryIndex index.html index.htm default.htm index.php index.php3 index.phtml index.php5 index.shtml mwindex.phtml

Co rozwiązuje:

Pliki z końcówką .php wyświetlają się również po wpisaniu końcówki .html lub po nie wpisaniu żadnej końcówki.

Powyższy kod usuwa końcówki .php i .html. Linki wyświetlają się bez końcówek, niezależnie jak je wpiszemy w wyszukiwarce.

Raz jeszcze dzięki wszystkim za pomoc w dojściu do rozwiązania

 

komentarz 31 stycznia 2019 przez HaKIM Szeryf (87,590 p.)
komentarz 31 stycznia 2019 przez Suska Łukasz Użytkownik (560 p.)

yes dodkładnie

Podobne pytania

+1 głos
1 odpowiedź 307 wizyt
pytanie zadane 7 października 2016 w PHP przez Paweł123 Nałogowiec (33,500 p.)
–1 głos
1 odpowiedź 173 wizyt
–1 głos
0 odpowiedzi 201 wizyt

92,555 zapytań

141,404 odpowiedzi

319,559 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...