Đôi khi, điều quan trọng là phải xóa -hoặc ẩn- phần mở rộng tệp của tập lệnh bạn sử dụng. Bảo mật do tối nghĩa có thể là lý do đó, nếu bạn không muốn người khác biết bạn đang sử dụng ngôn ngữ tập lệnh nào cho trang web của mình hoặc cho các máy chủ lưu trữ trang web tĩnh. Ví dụ này sẽ ẩn tiện ích mở rộng
3 bằng cách sử dụng Mô-đun viết lại URL IIS, trong một trang web sẵn sàng sử dụng. cấu hình &. htaccess ví dụ. tiện ích mở rộng ít URL hơn trong IISCode language: HTML, XML [xml]
Mục lục hiển thị
1 Tại sao cần phải ẩn phần mở rộng tệp trong URL?
2 Ẩn. php tiện ích mở rộng với Mô-đun Viết lại URL trên IIS
2. 1 Đối với các yêu cầu đã chứa một. phần mở rộng php
2. 2 Mô phỏng Đa chế độ xem của Apache trong IIS bằng cách sử dụng. htaccess và Helicon Ape
3 Xóa. phần mở rộng php với. htaccess từ URL
Tại sao cần ẩn phần mở rộng tệp trong URL?
Tôi không phải là người thích bảo mật bằng cách tối nghĩa và tôi chưa bao giờ gặp phải điều này do kết quả của quá trình quét bảo mật
Bảo mật do che khuất là một lý do để ẩn phần mở rộng tệp trong URL, nếu bạn không muốn người khác biết ngôn ngữ tập lệnh nào bạn đang sử dụng cho trang web của mình. Tối ưu hóa Công cụ Tìm kiếm [SEO] là một lý do hợp lệ khác hoặc có lẽ bạn chỉ muốn ẩn phần mở rộng tệp mà không có lý do rõ ràng
Cũng không có lợi ích gì cho SEO, theo như tôi biết
Tuy nhiên, bạn có thể sử dụng kỹ thuật này để rút ngắn URL một chút. Nó loại bỏ bốn đến năm ký tự khỏi URL [“. php”, “. html”, “. aspx”]. Và một số người nói rằng một trang web hoạt động nhanh hơn vì máy chủ web có thể khớp các URL không có phần mở rộng với các thư mục [thư mục] nhanh hơn các URL có phần mở rộng với một tệp. Một số người nói. Tôi không có dữ liệu hoặc thông tin thêm về điều này
Ẩn giấu. tiện ích mở rộng php với Mô-đun viết lại URL trên IIS
Đây là ví dụ về Mô-đun viết lại URL IIS để bạn ẩn. phần mở rộng php trong URL
Kỹ thuật này còn được gọi là Multiviews hoặc Content Negotiation trong Apache và những người khác gọi nó là URL không có phần mở rộng. Xem bên dưới để biết ví dụ để sử dụng với. htaccess trong IIS
Giới thiệu về MultiViews hoặc đàm phán nội dung
Tác dụng của MultiViews như sau. nếu máy chủ nhận được yêu cầu cho /some/dir/foo, nếu /some/dir đã bật MultiViews và /some/dir/foo không tồn tại, thì máy chủ sẽ đọc thư mục tìm kiếm các tệp có tên foo. * và giả mạo một cách hiệu quả một bản đồ loại đặt tên cho tất cả các tệp đó, gán cho chúng cùng loại phương tiện và mã hóa nội dung mà nó sẽ có nếu khách hàng yêu cầu một trong số chúng theo tên. Sau đó, nó chọn kết quả phù hợp nhất với yêu cầu của khách hàng
Đặt phần viết lại sau vào tệp
4 để ẩn. phần mở rộng php trong URL của bạn. Chà, ví dụ không thực sự che giấu. php khỏi URL, nhưng điều này cho phép bạn sử dụng URL không có phần mở rộng nhưCode language: HTML, XML [xml]
5Code language: HTML, XML [xml]
Mô-đun Viết lại URL của IIS thêm phần
3 vào URL ở chế độ nềnCode language: HTML, XML [xml]
Code language: HTML, XML [xml]
Chuyển thành. htaccess vào web. cấu hình
Không cho phép truy cập trực tiếp vào tệp PHP trong wp-content/uploads/
SSL trong WordPress. làm cách nào để chuyển WordPress sang HTTPS?
Đối với các yêu cầu đã có chứa một. phần mở rộng php
Một ví dụ mở rộng hơn là chuyển hướng tất cả các yêu cầu với. php trong URL tới biến thể không có phần mở rộng của chúng. Vì vậy, khi một khách truy cập đi qua
0, tiện ích mở rộng sẽ bị tước và anh ta sẽ được chuyển hướng đếnCode language: HTML, XML [xml]
1
Code language: HTML, XML [xml]
Quy tắc Viết lại của chúng tôi ánh xạ yêu cầu cuối cùng trở lại chỉ mục. php mà không hiển thị phần mở rộng
Code language: HTML, XML [xml]
Luôn kiểm tra các ví dụ như vậy trước khi đưa vào sản xuất
Giả lập Apache Multiviews trong IIS bằng cách sử dụng. htaccess và Helicon Ape
Nếu bạn dùng. htaccess trong IIS, bạn có thể tạo hiệu ứng Multiviews tương tự để ẩn. phần mở rộng php. Để điều này xảy ra, bạn phải khai báo một vài điều kiện viết lại và viết lại các quy tắc [
2 vàCode language: HTML, XML [xml]
3]. Điều thú vị là, điều này cũng sẽ hoạt động với Linux, Apache và mod_rewrite, làm cho giải pháp này trở nên đa nền tảngCode language: HTML, XML [xml]
Nhiều lượt xem. htaccess
Trong tệp
4 của bạn, hãy thêm cấu hình viết lại sau.Code language: HTML, XML [xml]
Code language: Apache [apache]
# Enable the Rewrite Engine RewriteEngine On # Match a folder name, www.example.com/dev/ in this case RewriteBase /dev/ # SEO URL's for PHP files RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Hide the .php extension to prevent double content RewriteRule ^[.+].php$ $1 [NC,L,R=301] # Rewrite to, and present the contents of the .php files, # if there is no file extension in the URL. # For example: /foo shows /foo.php RewriteRule ^[[^/]+][?:/[.+]]?$ $1.php?[?2p=$2] [L]
.htaccess rules explanation:
Khối mã đầu tiên sử dụng hai lần kiểm tra
2 để xác minh xem URL có phải là tệp hoặc thư mục hay không. Điều này hoàn chỉnh, rõ ràng và nhanh hơn là tạo ngoại lệ cho mọi loại tệp có thể.Code language: HTML, XML [xml]
3 viết lại URL – phần lớn không chứa phần mở rộng tệp – thành tệp PHP có tên đó.Code language: HTML, XML [xml]
Mẫu
7 được giải thích như sauCode language: HTML, XML [xml]
- Các ký tự kèm theo
8 và
9 đánh dấu phần đầu và phần cuối của chuỗi;
Code language: HTML, XML [xml] - Nhóm
0 khớp với tên của tệp PHP là
Code language: Apache [apache]# Enable the Rewrite Engine RewriteEngine On # Match a folder name, www.example.com/dev/ in this case RewriteBase /dev/ # SEO URL's for PHP files RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Hide the .php extension to prevent double content RewriteRule ^[.+].php$ $1 [NC,L,R=301] # Rewrite to, and present the contents of the .php files, # if there is no file extension in the URL. # For example: /foo shows /foo.php RewriteRule ^[[^/]+][?:/[.+]]?$ $1.php?[?2p=$2] [L]
1. Và nó tìm thấy tất cả các ký tự cho đến dấu gạch chéo hoặc cuối chuỗi
Code language: Apache [apache]# Enable the Rewrite Engine RewriteEngine On # Match a folder name, www.example.com/dev/ in this case RewriteBase /dev/ # SEO URL's for PHP files RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Hide the .php extension to prevent double content RewriteRule ^[.+].php$ $1 [NC,L,R=301] # Rewrite to, and present the contents of the .php files, # if there is no file extension in the URL. # For example: /foo shows /foo.php RewriteRule ^[[^/]+][?:/[.+]]?$ $1.php?[?2p=$2] [L]
- Khối
2 cố gắng tìm dấu gạch chéo, theo sau là các ký tự khác và lưu nó dưới dạng
Code language: Apache [apache]# Enable the Rewrite Engine RewriteEngine On # Match a folder name, www.example.com/dev/ in this case RewriteBase /dev/ # SEO URL's for PHP files RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Hide the .php extension to prevent double content RewriteRule ^[.+].php$ $1 [NC,L,R=301] # Rewrite to, and present the contents of the .php files, # if there is no file extension in the URL. # For example: /foo shows /foo.php RewriteRule ^[[^/]+][?:/[.+]]?$ $1.php?[?2p=$2] [L]
3
Code language: Apache [apache]# Enable the Rewrite Engine RewriteEngine On # Match a folder name, www.example.com/dev/ in this case RewriteBase /dev/ # SEO URL's for PHP files RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Hide the .php extension to prevent double content RewriteRule ^[.+].php$ $1 [NC,L,R=301] # Rewrite to, and present the contents of the .php files, # if there is no file extension in the URL. # For example: /foo shows /foo.php RewriteRule ^[[^/]+][?:/[.+]]?$ $1.php?[?2p=$2] [L]
Việc thay thế
4 sử dụng tham chiếu có điều kiệnCode language: Apache [apache]
# Enable the Rewrite Engine RewriteEngine On # Match a folder name, www.example.com/dev/ in this case RewriteBase /dev/ # SEO URL's for PHP files RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Hide the .php extension to prevent double content RewriteRule ^[.+].php$ $1 [NC,L,R=301] # Rewrite to, and present the contents of the .php files, # if there is no file extension in the URL. # For example: /foo shows /foo.php RewriteRule ^[[^/]+][?:/[.+]]?$ $1.php?[?2p=$2] [L]
- Chuỗi truy vấn được điền bằng
5 nếu tồn tại
Code language: Apache [apache]# Enable the Rewrite Engine RewriteEngine On # Match a folder name, www.example.com/dev/ in this case RewriteBase /dev/ # SEO URL's for PHP files RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Hide the .php extension to prevent double content RewriteRule ^[.+].php$ $1 [NC,L,R=301] # Rewrite to, and present the contents of the .php files, # if there is no file extension in the URL. # For example: /foo shows /foo.php RewriteRule ^[[^/]+][?:/[.+]]?$ $1.php?[?2p=$2] [L]
3
Code language: Apache [apache]# Enable the Rewrite Engine RewriteEngine On # Match a folder name, www.example.com/dev/ in this case RewriteBase /dev/ # SEO URL's for PHP files RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Hide the .php extension to prevent double content RewriteRule ^[.+].php$ $1 [NC,L,R=301] # Rewrite to, and present the contents of the .php files, # if there is no file extension in the URL. # For example: /foo shows /foo.php RewriteRule ^[[^/]+][?:/[.+]]?$ $1.php?[?2p=$2] [L]
Cuối cùng, một quy tắc được thêm vào để ẩn. phần mở rộng php
Điều này ngăn công cụ tìm kiếm tìm nội dung trùng lặp và do đó ngăn hình phạt cho vị trí trang web của bạn trong kết quả tìm kiếm. Có nhiều cách khác nữa
Viết lạiProxy với. htaccess trong IIS
Loại bỏ. phần mở rộng php với. htaccess từ URL
Để loại bỏ. php tiện ích mở rộng từ một URL có. htaccess, bạn có thể lưu các mục sau trong một tệp mới. tập tin htaccess
0Code language: HTML, XML [xml]
1Code language: HTML, XML [xml]
Hoặc sử dụng MultiViews
2Code language: HTML, XML [xml]
Điều này loại bỏ tiện ích mở rộng làm cho URL có nhiều người dùng hơn và -một số người nói- Công cụ tìm kiếm SEO thân thiện. Sử dụng những gì phù hợp nhất với bạn và thêm thẻ meta chuẩn vào phần đầu HTML của bạn để tránh nội dung trùng lặp [nếu thích hợp]