2009-08-17 30 views
6

Po wpisaniu adresu mojej strony w przeglądarce (mysite.com), następuje przekierowanie do mysite.com/index.php. Dlaczego nie do index.html? Ponieważ zmieniłem go w pliku conf w Apache 2.2.Ukryj index.php (lub index.html) adresu URL

  • Teraz chciałbym ukryć ostatnią część "index.php". Jak mogę to zrobić ?
  • Czy byłby inny niż index.html niż index.php?

Czy nie byłoby brzydko, jeśli szukając google, trafiłbyś na www.google.com/index.html? ... to tylko estetyka, ale bóg jest ważny dla pewnych ludzi.

+0

I ponownie oznaczone na pytanie, usuwając 'hide' i zastąpienie 'mod-rewrite', jak myślę, że to prawdopodobnie Bardziej trafne. Cieszę się, że się udało, chociaż =) –

+0

Co masz na myśli przez przekierowanie? Czy jest to zewnętrzne przekierowanie (adres URL się zmienia), czy wewnętrzne przekierowanie (żądanie '/' zwraca to samo, co '/ index.php')? – Gumbo

Odpowiedz

10

Nie wiem, dlaczego trzeba użyć mod_rewrite. Na mojej stronie nie zrobiłem nic, by ukryć index.php, po prostu nie kieruję go nigdzie w kodzie, więc zamiast www.example.com/index.php?task=forum piszę tylko www.example.com/?task = forum. Działa na standardowej konfiguracji apache.

+1

Zgadzam się. Nie potrzebujesz MOD_REWRITE dla tak prostej rzeczy. –

+0

Spróbuję i wrócę do ciebie. –

+0

Hmmm Jestem trochę zdezorientowany ... Odnoszę index.php później w jakimś innym kodzie, ale to nie powinno mieć znaczenia. Kiedy piszę mysite.com, jestem odwoływany do mojego serwera, na którym działa apache. Apache wyświetli następnie index.html.Ale nigdy nie wspomniałem o tym konkretnie. –

1

Możesz to łatwo zrobić, korzystając z mapowania adresów URL w pliku http.conf lub poszczególnych plików .htaccess w katalogach aplikacji. Włącz mod rewrite. Here to prosty samouczek.

+0

Podoba mi się twoja odpowiedź, ale myślę, że Pablo Santa Cruz i Myśliciel mają rację: nie muszę wchodzić tak głęboko, żeby rozwiązać mój konkretny problem. Nie potrzebuję armaty do zabicia muchy. –

+0

Uzgodnione, jeśli chcesz tylko obsługiwać index.html, to jest poprawne. Jeśli masz więcej niż jedną stronę "sterującą", potrzebujesz mod_rewrite. –

3

Jeśli to przekierowanie (na przykład przez wysłanie nowego nagłówka Location on HTTP), nie można nic zrobić, ale zmienić kod, który wykonuje przekierowanie.

Z drugiej strony, jeśli Twój serwer WWW Apache, istnieje dyrektywa konfiguracji, które mogą pomóc:

DirectoryIndex

Po ustawieniu że aby: index.php lub indeksu. html, wtedy twój serwer automatycznie przekieruje do tych wewnętrznych plików bez zmiany adresu URL po trafieniu do katalogu na serwerze, na którym jest skonfigurowana dyrektywa DirectoryIndex.

Sądzę, że otrzymasz lepsze odpowiedzi, jeśli opublikujesz to na SERVERFAULT.

Powodzenia.

+0

Mogłem być niejasny, ale ta część, która powiedziała: "Zmieniłem ją w pliku conf w Apache", miała na myśli właśnie to. Jest ustawiony na index.php. –

2

To wydawało się do pracy w moim otoczeniu (nie będzie wyświetlany index.php):

 <form action="." method="POST"> 
     E-mail: <input type='password' size='50' name='email' /> 
     <input type='submit' value='Login' /> 
    </form>