PDA

Zobacz pełną wersję : Pozbycie się /index.php



Damian91
13-09-2018, 12:22
Dzień dobry,

mam w .htaccess taką regułkę:

RewriteEngine On


## Begin - Rewrite rules to block out some common exploits.
# If you experience problems on your site block out the operations listed below
# This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a ********** tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
#
## End - Rewrite rules to block out some common exploits.



Chciałbym pozbyć się index.php ze strony głównej. Dodawałem: RewriteRule ^index.php$ http://www.stronaglowna/$1 [R=301,L], ale nic nie działa.

Macie na to rozwiązanie?

zwiastun
13-09-2018, 12:51
W oryginalnym .htaccess jest odpowiednia reguła. Wystarczy, że włączysz obslugę prostych adresów oraz Przepsiywanie URL. Oczywiście, musisz też zmienić plik htaccess.txt na .htaccess

Damian91
13-09-2018, 13:07
Na serwerze mam htaccess.txt oraz .htaccess. W CMS w konfiguracji globalnej przepisywanie adresów oraz proste adresy też włączone.


Acha, i ten index.php pojawią się dopiero gdy go wpiszę, tzn. nie ma przekierowania na /

terra
13-09-2018, 13:12
polecam ten wątek http://forum.joomla.pl/showthread.php?84614-Pilk-htaccess&highlight=plik+htaccess

Damian91
13-09-2018, 14:33
Te artykuły nie uwzględniają tego przypadku.

terra
13-09-2018, 14:52
Uwzględniają :) bo są to ogólne zasady. W Twoim przypadku, jeśli pokazuje się index to pewnie nie masz aktywnych prostych adresów, albo nie działa plik .htaccess .
Jeszcze raz:
ustaw na TAK

Proste adresy
Zastosuj przepisywanie URL
Dodaj przyrostek do URL

usuń aktualny plik .htaccess i utwórz nowy z pliku htaaccess.txt . Nowo utworzony plik nie może być typu txt. To musi być plik .htaccess bez żadnego rozszerzenia.

Damian91
13-09-2018, 15:08
Tak, jak napisałem, mam proste adresy i przepisywanie. Na serwerze mam oba pliki .htaccess - bez oraz z txt. Odsyłasz mnie do podstaw, a ja Ci pisze, że je wykonałem.

Może tu jest problem - # Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]

zwiastun
13-09-2018, 17:58
A Twoja witryna jest na pewno na serwerze z systemem Apache?

zwiastun
13-09-2018, 18:33
Acha, i ten index.php pojawią się dopiero gdy go wpiszę, tzn. nie ma przekierowania na /

Nie bardzo rozumiem. Pojawia się czy się nie pojawia. Bo jeśli się pojawia dlatego, że go wpisujesz, to może po prostu... nie wpisuj?

terra
13-09-2018, 18:43
Tak, jak napisałem, mam proste adresy i przepisywanie. Na serwerze mam oba pliki .htaccess - bez oraz z txt. Odsyłasz mnie do podstaw, a ja Ci pisze, że je wykonałem.

Może tu jest problem - # Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]


Robiłeś wpisy w .htaccess , a nie wiem co tam dokładnie zrobiłeś, dlatego proponuję usunięcie .htaccess i stworzenie nowego ze standardowymi wpisami, wtedy jest punkt odniesienia dla porad

Damian91
14-09-2018, 16:30
Nie, gdy go wpiszę i uruchomię, to pozostaje. Jest po prostu duplikacja strony głównej.

- - - Updated - - -

No właśnie, ktoś przede mną robił zmiany i staram się zinterpretować. Chcę po prostu pozbyć się duplikacji treści. Chcę, by nie wyświetla się strona.pl/index.php

mjmartino
17-09-2018, 19:45
Twój problem, który opisujesz powinieneś rozwiązać wpisem pierwszym który znajdziesz tutaj (https://joomlaguru.pl/joomla/309/jak-sie-pozbyc-z-adresu-index-php-w-joomla-3)
Nie będę się rozpisywał czym ten problem jest spowodowany, ale zdarza się częściej niż niektórym się wydaje.
A jak to nie rozwiąże problemu to kontakt na prv.

Damian91
20-09-2018, 14:11
Rozwiązałem ten problem metodą prób i błędów.

Zadziałało to:

RewriteRule ^index\.php/(.*) $1 [NS,NC,L,R=301] ---> Przekierowało podstrony z mojastrona.pl/index.php/oferta/usługa na mojastrona.pl/oferta/usługa


########## Begin - Redirect index.php to / ----> Przekierowało główną mojastrona.pl/index.pl na mojastrona.pl
RewriteCond %{THE_REQUEST} !^POST
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteCond %{SERVER_PORT}>s ^(443>(s)|[0-9]+>s)$
RewriteRule ^index\.php$ http%2://mojastrona.pl$1 [R=301,L]
########## End - Redirect index.php to /

Może komuś się przyda :)

terra
21-09-2018, 00:25
hmm.... trochę nakombinowałeś, a co powiesz na takie rozwiązanie ?

RewriteBase /
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

Damian91
21-09-2018, 09:23
Też działa. Dzięki wielkie, to na pewno lepsze rozwiązanie.