2013-04-10 33 views
6

Ok vì vậy tôi đã viết lại URL trong trang web của mình, bây giờ vì một lý do nào đó, đó là lỗi 404 nếu tôi nhập www.domain.com, nếu tôi nhập domian. com, mọi thứ đều ổn.Viết lại URL www.domain.com khiến 404 trên trang của tôi

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 

Lưu ý: Tôi đã nhận xét các quy tắc 2 viết lại 1 như thậm chí Nếu tôi thay đổi chúng nó không ảnh hưởng sau khi tải lên .htaccess đến máy chủ, cảm thấy như nó được lưu trữ.

Thông tin bổ sung, đang sử dụng <base> thẻ mà là ở embeds.php

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

cấu trúc thư mục

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

embeds.php được bao gồm trong home.php, about.php vv, và stylesheets, kịch bản vv, inshort sự phần đầu cùng với<base> thẻ nằm trong số embeds.php

+0

gì nằm trong ['apache rewrite log'] (http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritelog)? URL có được thay thế không? – Vyktor

+0

@Vyktor Tôi có thể tìm thấy tệp nhật ký ở đâu? và mọi thứ đều hoạt động tốt nhưng nếu tôi có 'www.' trong URL thì nó lộn xộn, và vì vậy tôi đã sử dụng 2 quy tắc đó để loại bỏ www, nhưng bây giờ tôi không thể làm điều đó vì nó không thay đổi 2 quy tắc, phần còn lại nếu tôi chỉnh sửa htaccess và tải nó lên nhưng không phải 2 quy tắc đầu tiên –

+0

Nó phụ thuộc vào cài đặt của máy chủ web của bạn, bạn có thể phải cấu hình lại nó (hoặc hy vọng 'rewritelog' (xem url trong bình luận trước). '.htaccess'). – Vyktor

Trả lời

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

Nó sẽ hoạt động, nếu nó không đến từ DNS của bạn hoặc cấu hình Vhost.

+0

Nó vẫn chuyển hướng đến 404 nếu tôi nhập www vào đầu –

+0

+1 và đánh dấu, nó hoạt động với www cũng như không có www: D tuyệt vời và btw vấn đề là firefox, và như tôi đã đề cập đến bộ nhớ đệm của '.htaccess' câu trả lời này ở đây http: // stackoverflow.com/questions/4499541/htaccess-file-bằng cách nào đó-được-cached' của nitro đã giúp, tôi sử dụng chrome và nó đã làm việc, cảm ơn mọi người –

Các vấn đề liên quan