2013-04-10 18 views
6

Ok, więc przepisałem adres URL na mojej stronie, teraz z jakiegoś powodu, jeśli wpisuję domenę domianową, wpisuję błąd 404. com, wszystko działa dobrze.Przepisz adres URL www.domain.com powodując 404 na mojej stronie

DirectoryIndex home.php 

IndexIgnore * 
#RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
#RewriteRule ^(.*)$ http://%1/directory/$1 [L,R=301] 

RewriteRule ^home/?$ home.php [NC] 
RewriteRule ^about/?$ about.php [NC] 

RewriteRule ^404/?$ 404.php [NC] 

ErrorDocument 404 http://domain.com/directory/404 

Uwaga: Ja skomentował 1st zasady 2 przepisywania jak nawet gdybym je zmienić nie wpływa po przesłaniu .htaccess do serwera, czuje się jakby to buforowane.

Dodatkowe informacje, używam <base> znacznik, który jest w embeds.php

if($_SERVER['REMOTE_ADDR'] == '::1') { 
    echo '<base href="http://localhost/projects/directory/" />'; 
} else { 
    echo '<base href="http://domain.com/directory/" />'; 
} 

Struktura katalogów

Root - 
    home.php 
    about.php 
    -stylesheets 
     default.css 
    -includes 
     embeds.php 
    404.php 
    .htaccess 

embeds.php jest zawarte w home.php, about.php etc i style, skrypty itp inshort nagłówek wraz ze znacznikiem<base> są w embeds.php

+0

Co znajduje się w ['dzienniku przerobienia apache'a'] (http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritelog)? Czy adres URL zostanie zastąpiony? – Vyktor

+0

@Vyktor Gdzie mogę znaleźć plik dziennika? i wszystko działa dobrze, ale jeśli mam adres "www." w adresie URL, to przestaje działać, więc użyłem tych 2 reguł, aby pozbyć się strony www, ale teraz nie jestem w stanie tego zrobić, ponieważ to się nie zmienia 2 zasady, reszta jeśli edytuję htaccess i upload to wpływa, ale nie pierwsze 2 reguły –

+0

To zależy od ustawień twojego serwera, może będziesz musiał zmienić konfigurację (lub mam nadzieję, że "rewritelog" (patrz adres URL w poprzednim komentarzu) możesz dodać konfigurację do '.htaccess'). – Vyktor

Odpowiedz

1
RewriteCond %{HTTP_HOST} ^domain.com$ 
RewriteRule ^(.*) http://www.domain.com/$1 [QSA,L,R=301] 

Powinno działać, jeśli nie pochodzi z konfiguracji DNS lub Vhost.

+0

To nadal przekierowuje do 404 jeśli wpisuję www na początku –

+0

+1 i zaznaczam, działa z www jak i bez www: D awesome and btw problemem był firefox, i jak już wspomniałem buforowanie '.htaccess' ta odpowiedź tutaj http: // stackoverflow.com/questions/4499541/htaccess-file-ashow-being-cached' of nitro pomogła, użyłem chrome i to pracował, dziękuję wszystkim –

Powiązane problemy