Làm thế nào để tạo một chuyển hướng lập trình? [đóng cửa]


14

Tôi cố gắng tạo một chuyển hướng 301 với mô-đun chuyển hướng . Ví dụ: tôi muốn chuyển hướng một nguồn URL sang một URL nội bộ thông qua mô-đun tùy chỉnh của mình.

Tôi muốn tạo một chuyển hướng khi tôi tạo một nút. Nhập nội dung cũ, tạo một nút mới và giữ đường dẫn cũ.

Bất cứ ai có một ý tưởng?


1
Bạn chắc chắn nên thêm nhiều thông tin cho câu hỏi của bạn. Bạn đã thử những gì cho đến nay? Vấn đề chính xác của bạn là gì? Tại sao bạn không đề cập đến việc di chuyển mà bạn đã đề cập trong một nhận xét cho một trong những câu trả lời?
leymannx

Bạn có thể sử dụng các đoạn mã dưới đây để tạo chuyển hướng URL theo chương trình. // Tạo một đối tượng với các tham số chuyển hướng $ redirect = new stdClass (); redirect_object_prepare ($ redirect); $ redirect-> source = 'old-url'; $ redirect-> source_options = mảng (); $ redirect-> redirect = 'nút / 5'; // Đường dẫn hệ thống mới $ redirect-> redirect_options = mảng (); $ redirect-> type = 'redirect'; $ redirect-> ngôn ngữ = LANGUAGE_NONE; redirect_save ($ redirect);
Aryashree Pritikrishna

Câu trả lời:


23

Nếu bạn muốn lưu trữ chuyển hướng trong cơ sở dữ liệu, hãy sử dụng chuyển hướng mô-đun . Mô-đun này cung cấp giao diện người dùng để thêm chuyển hướng. Các chuyển hướng được lưu trữ trong một thực thể nội dung, mà bạn cũng có thể tạo lập trình:

use Drupal\redirect\Entity\Redirect;

  Redirect::create([
    'redirect_source' => 'redirects/redirect1',
    'redirect_redirect' => 'internal:/node/1',
    'language' => 'und',
    'status_code' => '301',
  ])->save();

Bạn có thể làm điều này tại thời điểm bạn tạo các nút từ dữ liệu đã nhập hoặc bạn có thể đặt mã vào các móc thực thể cập nhật các chuyển hướng khi tạo, chỉnh sửa hoặc xóa một nút.


5

Bạn có thể sử dụng RedirectResponseđể đạt được điều này.

Tham khảo liên kết sau

/drupal//a/138852


Cảm ơn câu trả lời của bạn. Nhưng tôi muốn tạo một chuyển hướng khi tôi tạo một nút. Tôi nhập một nội dung cũ để tạo một nút mới và tôi giữ đường dẫn cũ.
Romest

4

Bạn có thể thay đổi .htaccess của mình bằng cách thêm mã này:

#custom redirects
RewriteRule ^old/URL/path$ http://example.com/new/path [R=301,L]
#end custom redirects

Hoặc nếu bạn muốn làm điều này trong Drupal:

return new RedirectResponse(Drupal\Core\Url::fromUri('route_name')); 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.