2011-01-14 7 views
40

Muszę uruchomić wszystkie moje pliki .html jako pliki .php i nie mam czasu na zmianę wszystkich linków przed jutrzejszą prezentacją. Czy jest jakiś sposób na "zhackowanie" tego z moim serwerem Apache?Użycie .htaccess w celu uruchomienia wszystkich stron .html jako plików .php?

+2

Chociaż nie jest to bezpośrednia odpowiedź na twoje pytanie, użycie 'sed' lub dowolnego dobrego IDE pozwoli ci znaleźć i zastąpić cały katalog/projekt. Poza tym możesz łatwo zmienić nazwy plików w systemie Linux. – coreyward

+0

Tak, ale jeśli zmienisz nazwy plików za pomocą sed, możesz uzyskać wiele uszkodzonych linków. Oczywiście możesz też spróbować zmienić wszystkie linki w swojej witrynie, ale są też linki z całego internetu, które mogą wskazywać na twoją stronę. –

Odpowiedz

56

Tworzenie pliku .htaccess w katalogu głównym swojej stronie i dodać tę linię:

[Apache2 @ Ubuntu/Debian: użyj tej dyrektywy]

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

Lub z komentarz poniżej:

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

Jeśli twój PHP działa jako CGI (prawdopodobnie nie sprawy), należy wpisać zamiast:

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

Musiałem dodać "5" na końcu typu, aby działał, tj.'Aplikacja AddType/x-httpd-php5 .html .htm' (CentOS z PHP 5.3) – melat0nin

+13

To nie działa dla mnie. To sprawia, że ​​Firefox chce pobrać plik HTML i wyświetlić go. –

+1

@LeeBlake Mam ten sam problem. Masz szczęście? –

2

tutaj umieścić to w .htaccess

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

więcej informacji na ten page

+0

Dlaczego RemoveHandler? –

+0

dobrze, sprawdź ponownie mój kod. – andrewk

+0

ok .. RemoveHandler może nie być konieczne – andrewk

5

Dla nikogo tam nadal występują problemy,

spróbować (mój hosting był od Godaddy i to jest jedyna rzecz, która sprawdziła się wśród wszystkich odpowiedzi tam.

AddHandler x-httpd-php5-cgi .html 
8

In My GoDaddy Server następujący kod pracował

Options +ExecCGI 
AddType application/x-httpd-php .php .html 
AddHandler x-httpd-php5 .php .html 
+6

Myślę, że wspomnienie "Gojaddy" okrada cię z pierwszego miejsca. – Pacerier

3

Myślę, że to najlepszy sposób, aby uruchomić skrypt php na html i htm stron:

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

Normalnie należy dodać :

Options +ExecCGI 
AddType application/x-httpd-php .php .html 
AddHandler x-httpd-php5 .php .html 

Howeve r dla GoDaddy dzielonego hostingu (php-cgi), trzeba dodać również te wiersze:

AddHandler fcgid-script .html 
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .html 

Źródło: Parse HTML As PHP Using HTACCESS File On Godaddy.

+0

To działało również z hostem hostującym hosta. Dzięki. –

+0

Używam Godaddy i to jest jedyny, który pracował dla mnie. inne albo nie działają, albo pobierają stronę HTML bez jej wyświetlania! – lKashef

1

Korzystanie @ podejście Marc-François Firefox skłoniło mnie, aby pobrać plik html

Wreszcie następujące pracuje dla mnie (przy użyciu obu):

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

2

Można również użyć H lub Flaga T mod_rewrite wymuszająca wszystko.Pliki HTML być przetwarzane przez obsługi php:

używając H (Handler) Bandera:

RewriteEngine on 

RewriteRule \.(html|htm)$ - [H=application/x-httpd-php5] 

użyciu T (Type) flag:

RewriteEngine on 

RewriteRule \.(html|htm)$ - [T=application/x-httpd-php5] 

lub można dodać więcej rozszerzeń z zasadą wzór sepowany rurą |, że chcesz być przetwarzane przez obsługi php

ex:

RewriteRule \.(html|htm|txt|foo)$ - [T=application/x-httpd-php5] 

powyższy przykład będzie zmienić typ MIME plików, które kończą się .html, .htm, .txt , .foo do php.

Uwaga: na niektórych serwerach będzie trzeba zmienić php5 do php dostać ten przykład do pracy w handler wyrażenie:

Zmień to

[T=application/x-httpd-php5] 

do

[T=application/x-httpd-php] 
5

Musisz dodać następujący wiersz do pliku konfiguracyjnego Apache:

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

Trzeba również dwie inne rzeczy:

  1. Pozwól Overridding

    W your_site.conf pliku (np pod /etc/apache2/mods-available w moim przypadku), należy dodać następujące wiersze:

    <Directory "<path_to_your_html_dir(in my case: /var/www/html)>"> 
        AllowOverride All 
    </Directory> 
    
  2. Włącz Przepisz Mod

    uruchomić to polecenie na komputerze:

    sudo a2enmod rewrite 
    

    po każdym z tych etapów, należy ponownie uruchomić apache:

    sudo service apache2 restart 
    
-1
AddHandler application/x-httpd-php .php .html .htm 
// or 
AddType application/x-httpd-php .php .htm .html 
+1

Proszę użyć linku [edit], aby wyjaśnić działanie tego kodu, a nie tylko podać kod, ponieważ wyjaśnienie może pomóc przyszłym czytelnikom. Zobacz także [odpowiedź]. [źródło] (http://stackoverflow.com/users/5244995) –

Powiązane problemy