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
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
@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 –
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