Hướng dẫn htaccess remove index html from url - htaccess loại bỏ chỉ mục html khỏi url

Tôi đã cung cấp một số thông tin về môi trường trang web của mình

  1. Tôi có trang web tĩnh trong gốc.

  2. WordPress được cài đặt trong từ điển www.domain.com/blog/

  3. Tôi có hai .htaccess, một trong gốc và một trong thư mục WordPress.

tôi muốn

  • www để không trên tất cả các url < below code DID it :)
  • Xóa index.html khỏi url < below code DID it :)
  • Xóa tất cả .html Tiện ích mở rộng / Direct 301 sang URL mà không có tiện ích mở rộng .html < below code DID it :)
  • Thêm dấu gạch chéo vào các trang web tĩnh / định hướng lại 301 từ chém không truyền hình << I NEED HELP WITH THAT
  • Lực lượng chém kéo theo các trang web WordPress / RELECT 301 từ dấu vết không truyền hình < below code DID it :)

Vài ví dụ

domain.tld/index.html >> domain.tld/

domain.tld/file.html >> domain.tld/file/

domain.tld/file.html/>> domain.tld/file/

domain.tld/wordpress/post-name >> domain.tld/wordpress/post-name/

Mã của tôi trong root htaccess là

     
    Options +FollowSymLinks -MultiViews


    RewriteEngine On 
    RewriteBase /

    #removing trailing slash
    RewriteCond %{REQUEST_FILENAME} !-d     
    RewriteRule ^(.*)/$ $1 [R=301,L]

    #www to non
    RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?domain\.com)$ [NC]
    RewriteRule .? http://%1%{REQUEST_URI} [R=301,L]

    #html
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^([^\.]+)$ $1.html [NC,L]

    #index redirect 
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/ 
    RewriteRule ^index\.html$ http://domain.com/ [R=301,L]
    RewriteCond %{THE_REQUEST} \.html 
    RewriteRule ^(.*)\.html$ /$1 [R=301,L] 
     

    
    RewriteEngine on
    RewriteBase /blog/
    # Force Trailing Slash for wordpress
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)[^/]{1}$ %{REQUEST_URI}/ [L,R=301]
     

Mã trên làm

  1. chuyển hướng www sang không phải www
  2. Loại bỏ dấu gạch chéo ở cuối (nếu tồn tại)
  3. Hủy bỏ Index.html
  4. Loại bỏ tất cả .html
  5. Chuyển hướng 301 sang FileName mà không bị chém ở cuối
  6. Lực lượng chém kéo cho WordPress và chuyển hướng 301 từ Slash không theo dõi ở cuối

CHỈNH SỬA

#removing trailing slash Rule usage

Hướng dẫn htaccess remove index html from url - htaccess loại bỏ chỉ mục html khỏi url

121029

Nó khá dễ dàng để loại bỏ index.html khỏi một url với mod_rewrite. Giả sử chúng tôi muốn chuyển hướng www.dense13.com/index.html sang www.dense13.com:

RewriteEngine On
RewriteRule ^index\.html$ / [R=301,L]

Đây là một lời giải thích ngắn gọn, nếu bạn không quen thuộc với .htaccess cú pháp:

  • Chỉ thị viết lại có ba phần, một mẫu (^index \ .html $), một sự thay thế (/) và tùy chọn một số sửa đổi ([r = 301, l]).
  • Trong mẫu: Biểu tượng ^ có nghĩa là "bắt đầu với" và biểu tượng $ có nghĩa là "kết thúc bằng". Ngoài ra, dấu gạch chéo ngược là nhân vật thoát, và chúng ta cần đặt nó trước dấu chấm, bởi vì dấu chấm thường có ý nghĩa đặc biệt và chúng ta không muốn điều đó ở đây. Vì vậy, trong trường hợp này, mẫu sẽ chỉ khớp với chuỗi "index.html".
  • Nếu mẫu được tìm thấy (nghĩa là, nếu yêu cầu là index.html), nó sẽ được chuyển hướng đến "/", đó là gốc của trang web của bạn.

Luôn loại bỏ index.html

Điều gì sẽ xảy ra nếu bạn muốn luôn loại bỏ index.html? Ví dụ: www.dense13.com/music/index.html -> www.dense13.com/music/. Dễ!

RewriteEngine On
RewriteRule ^index\.html$ / [R=301,L]
RewriteRule ^(.*)/index\.html$ /$1/ [R=301,L]

Quy tắc Viết lại thứ hai kiểm tra bất kỳ yêu cầu nào kết thúc bằng /index.html và xóa bit index.html. Một lần nữa, giải thích nhanh về quy tắc viết lại thứ hai:

  • (.*) - Điều này có nghĩa là 'bất cứ điều gì'. Dấu chấm có nghĩa là 1 ký tự và dấu hoa thị có nghĩa là "không hoặc nhiều hơn". Vì vậy, "số không hoặc nhiều ký tự". Chúng tôi đặt điều này giữa các dấu ngoặc đơn vì chúng tôi cần điều này trong sự thay thế (tiếp tục đọc).
  • Trong sự thay thế, $ 1 có nghĩa là "bất cứ điều gì giữa dấu ngoặc đơn trong mẫu", đó là bất cứ điều gì trước /index.html.

Sắp xếp! Bạn có thể cần ít điều chỉnh nếu bạn có nhu cầu cụ thể hơn, nhưng hy vọng điều này mang lại cho bạn một điểm khởi đầu tốt.

Đăng trong: English, Web, .htaccess English, Web, .htaccess

Bạn có thể theo dõi bất kỳ câu trả lời nào cho mục nhập này thông qua nguồn cấp dữ liệu RSS 2.0. Cả hai nhận xét và ping hiện đang bị đóng.

Theo mặc định, các trang web dựa trên PHP thêm index.php vào tên miền trong URL. Thật khó để nhớ bao gồm nó trong mỗi URL trên trang web của bạn và cũng tiết lộ công nghệ của bạn cho các tin tặc tiềm năng. Vì vậy, trong bài viết này, chúng tôi sẽ xem xét cách xóa index.php khỏi url bằng cách sử dụng .htaccess. Bạn có thể sử dụng các bước này để xóa index.php khỏi codeigniter.

Dưới đây là các bước để xóa index.php khỏi url bằng cách sử dụng .htaccess.

1. Kích hoạt mod_rewrite

Nếu bạn đã bật mod_rewrite trên máy chủ Apache của mình, bạn có thể bỏ qua bước này. Khác mở thiết bị đầu cuối và chạy các lệnh sau để bật mod_rewrite trong các hệ thống Ubuntu/Debian.

$ sudo a2enmod rewrite

Chỉ cần một lệnh để kích hoạt mod_rewrite trong các hệ thống Ubuntu/Debian.

Đối với các hệ thống centos/rhel/fedora, mở tệp cấu hình Apache

$ sudo vi /etc/apache2/httpd.conf

Tìm dòng sau

#LoadModule rewrite_module modules/mod_rewrite.so

Giải phóng nó bằng cách loại bỏ # khi bắt đầu

LoadModule rewrite_module modules/mod_rewrite.so

Nếu bạn không tìm thấy dòng trên, chỉ cần thêm nó vào tệp cấu hình.

Tìm kiếm phần sau và thay đổi Chỉ thị cho phép từ không thành tất cả.

. . .

. . .
 # 
 # AllowOverride controls what directives may be placed in .htaccess files.
 # It can be "All", "None", or any combination of the keywords:
 # Options FileInfo AuthConfig Limit
 #
 AllowOverride All
. . .

. . .

Cũng đọc: Vị trí tệp cấu hình Apache

2. Tạo tệp .htaccess

Tạo tệp .htaccess trống tại trang web của bạn root/var/www/html

$ sudo vi /var/www/html/.htaccess

Xin lưu ý rằng bạn cần thêm một dấu chấm (.) Trong .htaccess Tên tệp.

Cũng đọc: Cách sửa chữa không thể xác định một cách đáng tin cậy máy chủ tên miền đủ điều kiện

3. Cập nhật .htaccess Cấu hình

Thêm các dòng sau vào tệp .htaccess của bạn.

#removing trailing slash Rule usage
0

Lưu và đóng tập tin. Xóa tệp index.php khỏi/var/www/html.

Chúng ta hãy xem xét cấu hình trên. %{Request_filename} có phần URL sau tên miền của bạn. Ba dòng tiếp theo về cơ bản kiểm tra xem URL được yêu cầu không phải là tệp thông thường (-F) và không phải là thư mục (-D) sau đó viết lại URL không bao gồm index.php từ nó.

Cũng đọc: Cách chuyển hướng HTTP sang HTTPS trên cổng tùy chỉnh trong Apache

4. Khởi động lại máy chủ Apache

Khởi động lại máy chủ web Apache để áp dụng các thay đổi.

#removing trailing slash Rule usage
1

Trình duyệt mở và truy cập http://your-domain.com/index.php và nó sẽ tự động chuyển hướng đến http://your-domain.com.

Đó là nó. Bây giờ bạn không cần phải bao gồm index.php trong các URL được yêu cầu vào trang web của bạn. Ngoài ra, nếu bất cứ ai vô tình bao gồm index.php trong URL được yêu cầu, nó sẽ được tự động xóa.

Cũng đọc: Cách các tệp rsync giữa hai máy chủ

Bài viết liên quan:

Làm cách nào để loại bỏ .html khỏi url?

Tiện ích mở rộng HTML có thể dễ dàng xóa bằng cách chỉnh sửa tệp .htaccess.editing the . htaccess file.

Bạn có thể xóa chỉ mục html không?

Nói chung, bạn có thể xóa các tệp index.html đó nhưng bạn cần chắc chắn rằng chỉ mục thư mục bị tắt trong cấu hình máy chủ web của bạn.Những chỉ số.Các tệp HTML trong Codeigniter Ngăn chặn (trong mọi trường hợp) Danh sách thư mục có thể dẫn đến luồng bảo mật nghiêm trọng.You can remove those index. html files but you need to be sure that directory index is disabled in you web server configuration. Those index. html files in CodeIgniter prevent (in any case) directory listing wich can lead to serious security flow.

Làm thế nào để xóa chỉ mục PHP khỏi URL bằng HTACCESS?

Cách xóa chỉ mục ...
Tạo tệp .htaccess ..
Xóa tệp index.php ..
Bật chế độ Apache viết lại ..
Khởi động lại Apache ..

Làm cách nào để loại bỏ chỉ mục PHP khỏi URL?

Để loại bỏ chỉ mục trên mạng.PHP từ URL của trang web của bạn, trước tiên bạn sẽ cần đảm bảo rằng máy chủ của bạn được thiết lập để vượt qua các yêu cầu 404 sẽ tắt tệp index.php của Craft.php phía sau hậu trường.Nếu bạn đang chạy Apache, bạn có thể làm điều đó bằng cách tạo chuyển hướng trong trang web của bạn.make sure your server is set up to pass would-be 404 requests off to Craft's index. php file behind the scenes. If you're running Apache, you can do that by creating a redirect in your site's .