Skocz do zawartości
  • Ogłoszenia

  • Gdzie świętować urodziny GMCLANu   31 użytkowników zagłosowało

    1. 1. Gdzie świętować urodziny GMCLANu


      • Warszawa (bo w centrum)
      • Szczecin (bo tam mieszka Ranma i narodził się GMCLAN)

    Żeby zagłosować w tej ankiecie, prosimy się zalogować lub zarejestrować. Zobacz temat
MaxGaming

[htaccess] Jak zrobić wyjątek

Rekomendowane odpowiedzi

Mam taką treść pliku .htaccess

Options -Indexes
AddType application/x-httpd-php .html
RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?goto=$1 [L]

 

W index.php mam całe przetwarzanie żądania. Teraz jak zrobić aby nie dało się wejść np. www.strona.pl/obrazek.php a dało się www.strona.pl/obrazek?

Jeżeli usuwa linie:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Jest prawie idealnie, ale nie działa wtedy też index.php. Chce aby żadnego pliku nie dało się wczytać(ale też tylko php i html) tylko index.php.

Tylko php i html bo chce mieć wciąz obrazki itp. ale nie chce by ktoś wczytywał "ręcznie pliki" tylko przez moje przypisane adresy w index.php.

Przykład takiego index.php:

<?php
if(isset($_GET['goto']))
{
    switch (strtolower($_GET['goto']))
    {
        case 'strona_glowna':
            require($_SERVER['DOCUMENT_ROOT'].'/home.php');
            break;

        case 'wyloguj':
            require($_SERVER['DOCUMENT_ROOT'].'/logout.php');
            break;

        default:
            require($_SERVER['DOCUMENT_ROOT'].'/bad_url.php');
            break;
    }
}else{
    require($_SERVER['DOCUMENT_ROOT'].'/home.php');
}
?>

 

Aktualnie mogę wejść jako "/wyloguj" ale mogę też(a tego nie chce)"logout.php". To ma szczególne znaczenie dlatego że są także skrypty php które nie są samodzielną stroną a wklejam je require a także dlatego że chce zachować spójność i estetykę.

 

Podsumowanie: chce wyłączyć wszystkie pliki html i php z wyłączeniem index.php.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Zamiast bawić się w .htaccessie ja bym w public_html (zakładam, że tak się nazywa document root) zostawił tylko index.php i pozostałe statyczne zasoby (obrazki, css, fonty itp.) a kod strony przeniósł wyżej.

Np. taka struktura:

/protected - wszystkie phpy
/public_html
- assets/ - css, gfx itp.
- index.php

 

Z poziomu przeglądarki dostęp będzie tylko do public_html a w index.php możesz ścieżką wyjść do protected.

$appPath = $_SERVER['DOCUMENT_ROOT'].'/../protected/';
...
require($appPath.'home.php');

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

 

Wszystko trafi na index.php. Jak wpiszesz strona.pl/obrazek to też się wczyta index.php i musisz tam przetworzyć dane.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Options -Indexes
AddType application/x-httpd-php .html
RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?goto=$1 [L]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Nie bardzo wiem jak to połączyć z resztą :/ Tak nie działa. I czy można zastosować tylko dla plików php i html a reszta żeby z serwera była wczytywana(głównie chodzi mi o zdjęcia i zipy)?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×