RewriteEngine bật
RewriteRule ^192.168.20.87$ không có gì
Vì một số lý do nếu tôi làm điều đó với .htaccess thì nó hoạt động
Mặc dù điều này sẽ không khớp với URL http://192.168.20.87/page.php
ngay cả khi bạn "làm điều đó với .htaccess
", vì vậy bạn phải là làm việc khác?
Quy tắc trên (khi được sử dụng trong một <Directory>
container) khớp với một URL có dạng http://192.168.20.87/192.168.20.87
(hoặc http://default.nothing/192.168.20.87
- nếu tên máy chủ của bạn giải quyết được).
Các viết lại quy tắc
mẫu chỉ khớp với đường dẫn URL, không phải tên máy chủ (tức là. 192.168.20.87
). Vì vậy, điều này phù hợp với /trang.php
, (hoặc trang.php
- đường dẫn tương đối/không có tiền tố dấu gạch chéo - khi được sử dụng trong một danh mục bối cảnh như <Directory>
hoặc .htaccess
.)
Vì vậy, điều này sẽ cần phải giống như sau:
RewriteRule ^page\.php$ không có gì
(Mặc dù không rõ bạn đang cố gắng làm gì ở đây, nhưng "không có gì" là gì? Nếu bạn đang cố kích hoạt 404 thì đây thực sự không phải là cách để thực hiện.)
Như @Gerrit đã đề cập một cách lỏng lẻo trong các nhận xét, khi viết lại quy tắc
chỉ thị được sử dụng trong một người phục vụ hoặc Máy chủ ảo ngữ cảnh (nghĩa là không có trong <Directory>
hoặc .htaccess
thùng chứa - một danh mục ngữ cảnh) thì đường dẫn URL khớp với viết lại quy tắc
chỉ thị có liên quan đến gốc, bắt đầu bằng dấu gạch chéo, bởi vì chỉ thị được xử lý sớm hơn nhiều, trước khi nó được ánh xạ tới hệ thống tệp. ví dụ. ^/trang\.php$
.
CẬP NHẬT:
DocumentRoot /var/www/html/public_html/00-default
<Thư mục "/volume/dev/html/public_html/00-default">
Tôi vừa nhận thấy rằng bạn Tài liệuRoot
và <Directory>
chỉ thị đang tham chiếu hai vị trí hệ thống tập tin khác nhau?! Với thông tin hạn chế trong câu hỏi, điều này <Directory>
container sẽ không bao giờ được xử lý.
Nhưng trừ khi bạn có các chỉ thị bổ sung ở nơi khác (mà tôi cho rằng bạn phải có) thì bất kỳ .htaccess
tệp được đặt trong thư mục gốc của tài liệu (là nơi mà tôi cho rằng bạn đang đặt nó) cũng sẽ không bao giờ được xử lý.