Hướng dẫn htaccess php to html rewrite - htaccess php để viết lại html

9

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Greetings!

Tôi đang cố gắng thay thế các phần mở rộng .php bằng .html

Cho đến nay tôi có:

RewriteRule ^[.*]\.html $1.php

... Nó hoạt động độc đáo khi URL như

RewriteRule ^[.*]\.php $1.html [R=301,L]
RewriteRule ^[.*]\.html $1.php
3 được nhập [và
RewriteRule ^[.*]\.php $1.html [R=301,L]
RewriteRule ^[.*]\.html $1.php
4 không tồn tại về mặt vật lý nhưng
RewriteRule ^[.*]\.php $1.html [R=301,L]
RewriteRule ^[.*]\.html $1.php
5 không].

Tuy nhiên, điều tôi muốn có là khi

RewriteRule ^[.*]\.php $1.html [R=301,L]
RewriteRule ^[.*]\.html $1.php
6 được nhập, người xem chỉ nhìn thấy
RewriteRule ^[.*]\.php $1.html [R=301,L]
RewriteRule ^[.*]\.html $1.php
3 ở vị trí trình duyệt.

Điều đó có thể làm được hay tôi phải thiết lập chuyển hướng rõ ràng cho mỗi trang? :-[

Cảm ơn trước.

Tái bút: Môi trường Dev tôi đang sử dụng là XAMPP trên OS X nếu nó tạo ra bất kỳ sự khác biệt nào

Hỏi ngày 28 tháng 12 năm 2010 lúc 19:33Dec 28, 2010 at 19:33

wallpaper

Thêm một dấu gạch chéo ở cuối

Tôi đã nhận được nhiều yêu cầu hỏi làm thế nào để thêm một dấu gạch chéo ở cuối, ví dụ:

RewriteEngine on
RewriteBase /
RewriteRule ^[.*]\.html$ $1.php [L] 
0

Bỏ qua đoạn trích đầu tiên và chèn mã bên dưới. Bốn dòng đầu tiên liên quan đến việc loại bỏ phần mở rộng và sau đây, với việc bổ sung dấu gạch chéo và chuyển hướng.

RewriteRule ^[.*]\.php $1.html [R=301,L]
RewriteRule ^[.*]\.html $1.php
0

Liên kết đến tệp HTML hoặc PHP giống như cách hiển thị ở trên. Don Tiết quên thay đổi mã nếu bạn muốn áp dụng cho tệp HTML thay vì PHP.

Một số người hỏi làm thế nào bạn có thể xóa tiện ích mở rộng khỏi cả hai tệp HTML và PHP. Tôi không có một giải pháp cho điều đó. Nhưng, bạn chỉ có thể thay đổi phần mở rộng của tệp HTML của mình từ

RewriteRule ^[.*]\.php $1.html [R=301,L]
RewriteRule ^[.*]\.html $1.php
9 hoặc
RewriteEngine on
RewriteBase /
RewriteRule ^[.*]\.html$ $1.php [L] 
2 thành
RewriteRule ^[.*]\.php $1.html [R=301,L]
RewriteRule ^[.*]\.html $1.php
8 và thêm mã để xóa tiện ích mở rộng
RewriteRule ^[.*]\.php $1.html [R=301,L]
RewriteRule ^[.*]\.html $1.php
8.

Sự kết luận

Đối với những người không có kinh nghiệm với các tệp

RewriteEngine on  
RewriteBase /

RewriteCond %{THE_REQUEST} [.*]\.php  
RewriteRule ^[.*]\.php $1.html [R=301,L]  

RewriteCond %{THE_REQUEST} [.*]\.html  
RewriteRule ^[.*]\.html $1.php [L]  
0, có một công cụ trực tuyến để tạo chúng. Nó rất hữu ích cho người dùng mới bắt đầu và dễ sử dụng.

Cập nhật

Người dùng Godaddy chú ý: Để loại bỏ các phần mở rộng bạn cần để kích hoạt

RewriteEngine on
RewriteBase /
RewriteRule ^[.*]\.html$ $1.php [L] 
6 trước đó. Mã sẽ trông như thế này:

RewriteRule ^[.*]\.php $1.html [R=301,L]
RewriteRule ^[.*]\.html $1.php
1

Nếu bạn lo lắng rằng các công cụ tìm kiếm có thể lập chỉ mục các trang này dưới dạng nội dung trùng lặp, hãy thêm thẻ meta

RewriteEngine on
RewriteBase /
RewriteRule ^[.*]\.html$ $1.php [L] 
7 trong
RewriteEngine on
RewriteBase /
RewriteRule ^[.*]\.html$ $1.php [L] 
8 của tệp HTML của bạn:

RewriteRule ^[.*]\.php $1.html [R=301,L]
RewriteRule ^[.*]\.html $1.php
2

Bài Viết Liên Quan

Chủ Đề