Htaccess thay thế ký tự trong URL

Khi được triển khai đúng cách,

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^folder1.*$ //example.com/ [R=301,L]
0 rất mạnh mẽ. Có rất nhiều ứng dụng khác cho
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^folder1.*$ //example.com/ [R=301,L]
0 mà bạn có thể tìm hiểu tại apache. tổ chức. Vui lòng tham khảo trang web của họ để biết các kịch bản viết lại có thể khác

Những ví dụ này được cung cấp như một phép lịch sự - [mt] Media Temple không thiết kế các quy tắc viết lại tùy chỉnh cho các trang web của khách hàng cá nhân

Một phương pháp đơn giản hơn để chuyển hướng trang web của bạn là sử dụng công cụ Chuyển hướng tên miền trong AccountCenter của bạn. Để biết thêm thông tin, vui lòng đọc. Grid Sử dụng công cụ Redirect Domains.

ĐỌC TÔI TRƯỚC

Bài viết này được cung cấp như một phép lịch sự. Cài đặt, định cấu hình và khắc phục sự cố ứng dụng của bên thứ ba nằm ngoài phạm vi hỗ trợ được cung cấp bởi [mt] Media Temple. Vui lòng dành chút thời gian để xem lại Tuyên bố hỗ trợ

ĐỌC TÔI TRƯỚC

Bài viết này được cung cấp như một phép lịch sự. Cài đặt, định cấu hình và khắc phục sự cố ứng dụng của bên thứ ba nằm ngoài phạm vi hỗ trợ chung được cung cấp bởi [mt] Media Temple. Vui lòng dành chút thời gian để xem lại Tuyên bố hỗ trợ

Hỗ trợ nâng cao có thể giúp

Nếu bạn gặp sự cố với các bước trong bài viết này, bạn có thể được hỗ trợ thêm qua Hỗ trợ nâng cao, bộ phận dịch vụ cao cấp của chúng tôi. Để biết thêm thông tin về những gì Hỗ trợ nâng cao có thể làm cho bạn, vui lòng nhấp vào đây

ĐỌC TÔI TRƯỚC
Bài viết này được cung cấp như một phép lịch sự. Cài đặt, định cấu hình và khắc phục sự cố ứng dụng của bên thứ ba nằm ngoài phạm vi hỗ trợ được cung cấp bởi [mt] Media Temple. Vui lòng dành chút thời gian để xem lại Tuyên bố hỗ trợ.

Yêu cầu

Trước khi bạn bắt đầu, vui lòng chuẩn bị sẵn

  • Thông tin xác thực người dùng FTP
  • Thông tin xác thực người dùng FTP
  • Thông tin xác thực người dùng SSH

Hướng dẫn

  1. Tạo một văn bản đơn giản. htaccess [nhấp vào liên kết để biết chi tiết về loại tệp này] hoặc thêm các dòng từ ví dụ vào đầu tệp hiện có của bạn. tập tin htaccess
  2. Thêm các dòng từ ví dụ thích hợp vào tệp của bạn. Lưu ý rằng bạn nên thay thế văn bản ví dụ bằng thông tin của riêng bạn. Thay thế ví dụ. com với tên miền của riêng bạn, thư mục1 với tên thư mục của riêng bạn, tệp. html bằng tên tệp của riêng bạn, v.v. Lưu các thay đổi của bạn.
  3. Sử dụng FTP hoặc  scp để tải tệp lên thư mục gốc của miền thích hợp. Nếu miền của bạn là example. com , bạn nên tải tệp lên.
    • tên miền/ví dụ. com/html/
    • /var/www/vhosts/ví dụ. com/httpdocs/
    • Điều này sẽ dành riêng cho cấu hình LAMP của bạn

Đó là nó. Khi bạn đã tải tệp lên, quy tắc viết lại sẽ có hiệu lực ngay lập tức

Một số Hệ thống quản lý nội dung [CMS], chẳng hạn như WordPress, ghi đè lên. htaccess với cài đặt riêng của chúng. Trong trường hợp đó, bạn có thể cần tìm ra cách viết lại từ bên trong CMS

Yêu cầu trực tiếp cho một thư mục con đến một thư mục con khác hoặc thư mục gốc của tài liệu

http. //ví dụ. com/folder1/ trở thành http. //ví dụ. com/folder2/ hoặc chỉ http. //ví dụ. com/

miền/ví dụ. com/html/folder2/ phải tồn tại và có nội dung trong đó để điều này hoạt động.

htaccess

Cái này. htaccess sẽ chuyển hướng http. //ví dụ. com/thư mục1/ sang http. //ví dụ. com/thư mục2/. Chọn phiên bản này nếu bạn không có cùng cấu trúc tệp trong cả hai thư mục

Tên tệp. . htaccess

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^folder1.*$ //example.com/folder2/ [R=301,L]

  • Cái này. htaccess sẽ chuyển hướng http. //ví dụ. com/folder1/ thành http đơn giản. //ví dụ. com/. Chọn phiên bản này nếu bạn muốn mọi người được chuyển hướng đến trang chủ của bạn chứ không phải bất kỳ trang riêng lẻ nào trong thư mục cũ mà họ yêu cầu ban đầu

Tên tệp. . htaccess .

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^folder1.*$ //example.com/ [R=301,L]

  • Cái này. htaccess sẽ chuyển hướng http. //ví dụ. com/thư mục1/tệp. html sang http. //ví dụ. com/thư mục2/tệp. html. Chọn phiên bản này nếu nội dung của bạn bị trùng lặp trong cả hai thư mục

Tên tệp. . htaccess

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^folder1/[.*]$ //gs.mt-example.com/folder2/$1 [R=301,L]

Bài kiểm tra

Tải tệp này lên thư mục2 [nếu bạn đã làm theo ví dụ thứ nhất hoặc thứ ba] hoặc html của bạn . folder [if you followed the second example] with FTPFTPscp:

Tên tệp. chỉ mục. html


Mod_rewrite is working!


Sau đó, nếu bạn làm theo ví dụ thứ nhất hoặc thứ hai, hãy truy cập http. //ví dụ. com/folder1/ trong trình duyệt của bạn. Bạn sẽ thấy URL thay đổi thành http. //ví dụ. com/thư mục2/ hoặc http. //ví dụ. com/ và nội dung trang thử nghiệm

Nếu bạn làm theo ví dụ thứ ba, hãy truy cập http. //ví dụ. com/thư mục1/chỉ mục. html. Bạn nên được chuyển hướng đến http. //ví dụ. com/thư mục2/chỉ mục. html và xem nội dung trang thử nghiệm

giải thích mã
  • Tùy chọn +FollowSymLinks là một lệnh của Apache, điều kiện tiên quyết cho mod_rewrite.
  • Bật RewriteEngine bật mod_rewrite.
  • RewriteRule xác định một quy tắc cụ thể.
  • Chuỗi ký tự đầu tiên sau RewriteRule xác định giao diện của URL gốc. Có giải thích chi tiết hơn về các ký tự đặc biệt ở cuối bài viết này.
  • Chuỗi thứ hai sau RewriteRule xác định URL mới. Điều này liên quan đến thư mục gốc của tài liệu [html]. / có nghĩa là chính thư mục html và các thư mục con cũng có thể được chỉ định.
    • $1 ở cuối khớp với phần trong ngoặc đơn [] từ chuỗi đầu tiên. Về cơ bản, điều này đảm bảo rằng các trang phụ được chuyển hướng đến cùng một trang phụ chứ không phải trang chính. Bỏ nó ra để chuyển hướng đến trang chính. [Nó bị bỏ qua trong hai ví dụ đầu tiên vì lý do này. Nếu bạn không có cùng nội dung trong thư mục mới mà bạn có trong thư mục cũ, hãy bỏ nội dung này đi. ]
  • [R=301,L] - thao tác này thực hiện chuyển hướng 301 và cũng ngăn mọi quy tắc viết lại sau này ảnh hưởng đến URL này [bạn nên thêm sau quy tắc cuối cùng]. Nó cùng dòng với RewriteRule , ở cuối.

Yêu cầu trực tiếp đến một thư mục con

http. //ví dụ. com/tệp. html trở thành http. //ví dụ. com/thư mục1/tệp. html

Ghi chú. Thư mục folder1 phải là duy nhất trong URL. Nó sẽ không hoạt động cho http. //ví dụ. com/thư mục1/thư mục1. html. Thư mục thư mục1 phải tồn tại và có nội dung trong đó.

htaccess

  • Cái này. htaccess sẽ chuyển hướng http. //ví dụ. com/tệp. html sang http. //ví dụ. com/thư mục1/tệp. html

Tên tệp. . htaccess

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} example.com$ [NC]
RewriteCond %{HTTP_HOST} !folder1
RewriteRule ^[.*]$ //example.com/folder1/$1 [R=301,L]

Bài kiểm tra

Tải tệp này lên thư mục1 bằng FTP.

Tên tệp. chỉ mục. html


Mod_rewrite is working!


Sau đó, truy cập http. //ví dụ. com/ trong trình duyệt của bạn. Bạn sẽ thấy URL thay đổi thành http. //ví dụ. com/folder1/ và nội dung trang kiểm tra

giải thích mã
  • Tùy chọn +FollowSymLinks là một lệnh của Apache, điều kiện tiên quyết cho mod_rewrite.
  • Bật RewriteEngine bật mod_rewrite.
  • RewriteCond %{HTTP_HOST} hiển thị những URL nào chúng tôi muốn và không muốn thực hiện trong quá trình viết lại.
    • Trong trường hợp này, chúng tôi muốn đối sánh ví dụ. com
    • ! có nghĩa là "không. " Chúng tôi không muốn viết lại URL đã bao gồm thư mục1 , bởi vì sau đó URL sẽ tiếp tục nhận được thư mục1< . added, and it would become an infinitely long URL.
  • [NC] khớp với cả phiên bản viết hoa và viết thường của URL.
  • RewriteRule xác định một quy tắc cụ thể.
  • Chuỗi ký tự đầu tiên sau RewriteRule xác định giao diện của URL gốc. Có giải thích chi tiết hơn về các ký tự đặc biệt ở cuối bài viết này.
  • Chuỗi thứ hai sau RewriteRule xác định URL mới. Điều này liên quan đến thư mục gốc của tài liệu [html]. / có nghĩa là chính thư mục html và các thư mục con cũng có thể được chỉ định.
    • $1 ở cuối khớp với phần trong ngoặc đơn [] từ chuỗi đầu tiên. Về cơ bản, điều này đảm bảo rằng các trang phụ được chuyển hướng đến cùng một trang phụ chứ không phải trang chính. Để nó ra ngoài để chuyển hướng đến trang chính của thư mục con.
  • [R=301,L] - thao tác này thực hiện chuyển hướng 301 và cũng ngăn mọi quy tắc viết lại sau này ảnh hưởng đến URL này [bạn nên thêm sau quy tắc cuối cùng]. Nó cùng dòng với RewriteRule , ở cuối.

Thêm www hoặc https

http. //ví dụ. com trở thành http. //www. ví dụ. com. Hoặc, http. //ví dụ. com trở thành https. //ví dụ. com

htaccess
  • Cái này. htaccess sẽ chuyển hướng http. //ví dụ. com/ đến http. //www. ví dụ. com/. Nó cũng sẽ hoạt động nếu một tệp riêng lẻ được yêu cầu, chẳng hạn như http. //ví dụ. com/tệp. html

Tên tệp. . htaccess

________số 8

  • Cái này. htaccess sẽ chuyển hướng http. //ví dụ. com/ đến https. //ví dụ. com/. Nó cũng sẽ hoạt động nếu một tệp riêng lẻ được yêu cầu, chẳng hạn như http. //ví dụ. com/tệp. html

Tên tệp. . htaccess

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^[.*]$ //www.example.com/$1 [R,L]

Bài kiểm tra

Truy cập http. //ví dụ. com trong trình duyệt của bạn. Bạn sẽ thấy rằng cùng một trang được hiển thị, nhưng URL đã thay đổi thành http. //www. ví dụ. com [ví dụ đầu tiên] hoặc https. //ví dụ. com [ví dụ thứ hai]

Ngoài ra, http. //ví dụ. com/tệp. html sẽ trở thành http. //www. ví dụ. com/tệp. html hoặc https. //ví dụ. com/tệp. html

giải thích mã
  • Tùy chọn +FollowSymLinks là một lệnh của Apache, điều kiện tiên quyết cho mod_rewrite.
  • Bật RewriteEngine bật mod_rewrite.
  • RewriteCond %{HTTP_HOST} hiển thị những URL nào chúng tôi muốn và không muốn thực hiện trong quá trình viết lại.
    • Trong trường hợp này, chúng tôi muốn khớp bất kỳ thứ gì bắt đầu bằng ví dụ. com
  • [NC] khớp với cả phiên bản viết hoa và viết thường của URL.
  • RewriteRule xác định một quy tắc cụ thể.
  • Chuỗi ký tự đầu tiên sau RewriteRule xác định giao diện của URL gốc. Có giải thích chi tiết hơn về các ký tự đặc biệt ở cuối bài viết này.
  • Chuỗi thứ hai sau RewriteRule xác định URL mới. Điều này liên quan đến thư mục gốc của tài liệu [html]. / có nghĩa là chính thư mục html và các thư mục con cũng có thể được chỉ định.
    • $1 ở cuối khớp với phần trong ngoặc đơn [] từ chuỗi đầu tiên. Về cơ bản, điều này đảm bảo rằng các trang phụ được chuyển hướng đến cùng một trang phụ chứ không phải trang chính.
  • [R=301,L] - thao tác này thực hiện chuyển hướng 301 và cũng ngăn mọi quy tắc viết lại sau này ảnh hưởng đến URL này [bạn nên thêm sau quy tắc cuối cùng]. Nó cùng dòng với RewriteRule , ở cuối.

Chuyển đổi URL thành tất cả chữ thường bằng Rewrite Map

Cái này. quy tắc htaccess sẽ đảm bảo rằng tất cả các ký tự được nhập vào một url được chuyển đổi thành chữ thường. Điều này giúp ngăn ngừa các lỗi do lỗi đánh máy

www. ví dụ. com/recIPes trở thành www. ví dụ. com/công thức nấu ăn

Ghi chú. Bởi vì quy tắc này yêu cầu chỉnh sửa tệp cấu hình cấp máy chủ, người dùng Lưới và WordPress được quản lý sẽ không thể triển khai quy tắc này.  

Để điều này hoạt động bình thường, bạn cũng phải thêm một lệnh vào tệp vhost của mình [httpd. conf]

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^folder1.*$ //example.com/ [R=301,L]
0
  • cho Plesk. Điều hướng đến Tên miền> ví dụ. com > Cài đặt lưu trữ web > Chỉ thị Apache bổ sung và đặt đoạn mã trên.  

Tiếp theo, mở của bạn. htaccess và thêm các dòng sau

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^folder1.*$ //example.com/ [R=301,L]
1

Ghi chú. Thay vì sử dụng RewriteMap để chuyển đổi URL thành chữ thường, Apache khuyến nghị sử dụng mod_spelling để bỏ qua phân biệt chữ hoa chữ thường.  

Bài kiểm tra

Điều hướng đến tên miền của bạn bằng cách sử dụng kết hợp chữ hoa và chữ thường

Giải thích mã

  • Bật RewriteEngine bật mod_rewrite.
  • RewriteCond %{REQUEST_URI} [A-Z] - Lấy địa chỉ đã nhập
  • viết lại quy tắc. ${lc. %{REQUEST_URI}} - Sử dụng biến 'lc' đã được thêm vào tệp vhost để chuyển đổi tất cả các ký tự thành chữ thường.  
  • [R=301,L] - Thực hiện chuyển hướng 301 và cũng ngăn mọi quy tắc viết lại sau này ảnh hưởng đến URL này [bạn nên thêm sau quy tắc cuối cùng]. Nó cùng dòng với RewriteRule , ở cuối.

biểu thức chính quy

Quy tắc viết lại thường chứa các ký hiệu tạo biểu thức chính quy [regex]. Đây là cách máy chủ biết chính xác cách bạn muốn thay đổi URL của mình. Tuy nhiên, các biểu thức chính quy có thể khó giải mã ngay từ cái nhìn đầu tiên. Đây là một số yếu tố phổ biến mà bạn sẽ thấy trong các quy tắc viết lại của mình, cùng với một số ví dụ cụ thể

  • ^ bắt đầu dòng khớp.
  • $ kết thúc dòng để khớp.
    • Vì vậy, ^folder1$ khớp chính xác với folder1 .
  • . là viết tắt của "bất kỳ ký tự nào không có khoảng trắng" [ví dụ. a, B, 3].
  • * nghĩa là ký tự trước đó có thể được khớp 0 hoặc nhiều lần.
    • Vì vậy, ^tải lên. *$ khớp với uploads2009 , uploads2010, etc.
    • ^.*$ có nghĩa là "khớp mọi thứ và mọi thứ. " Điều này hữu ích nếu bạn không biết người dùng của mình có thể nhập gì cho URL.
  • [] chỉ định phần nào cần giữ lại để sử dụng lại trong biến $1 trong chuỗi thứ hai. Điều này hữu ích để xử lý các yêu cầu đối với các tệp cụ thể giống nhau trong các phiên bản cũ và mới của URL.

Xem thêm biểu thức chính quy tại perl. tổ chức

Xử lý sự cố

404 không tìm thấy

Kiểm tra kỹ URL mới trong trình duyệt của bạn. Nó có khớp với một tệp tồn tại trên máy chủ ở vị trí mới được chỉ định bởi quy tắc viết lại không? . Điều này sẽ hướng viết lại vào trang chỉ mục chính được đưa ra trong chuỗi thứ hai. Hoặc, bạn có thể cần sao chép tệp từ vị trí cũ sang vị trí mới. $1 from the second string]. This will direct rewrites to the main index page given in the second string. Or, you may need to copy files from your old location to the new location.

Nếu URL hoàn toàn sai [như http. //ví dụ. com/thư mục1 // tập tin. html - lưu ý hai / s] bạn sẽ cần kiểm tra lại cú pháp của mình. [mt] Media Temple không hỗ trợ khắc phục sự cố cú pháp.

URL vô hạn, thời gian chờ, vòng lặp chuyển hướng

Nếu bạn nhận thấy rằng URL của mình quá dài, trang của bạn không bao giờ tải hoặc trình duyệt của bạn gửi cho bạn thông báo lỗi về việc chuyển hướng, thì có thể bạn đã có các chuyển hướng xung đột tại chỗ

Bạn nên kiểm tra lại toàn bộ. htaccess cho các quy tắc viết lại có thể phù hợp với các quy tắc viết lại khác. Bạn cũng có thể cần phải kiểm tra. htaccess trong thư mục con. Lưu ý rằng FTP sẽ không hiển thị. htaccess trừ khi bạn đã bật tùy chọn xem các tệp và thư mục ẩn. Xem của chúng tôi. bài viết htaccess để biết chi tiết

Ngoài ra, có thể bao gồm các chuyển hướng bên trong các trang HTML và PHP. Kiểm tra trang bạn đang kiểm tra để biết các chuyển hướng của chính trang đó

Chủ Đề