কীভাবে এনগিনেক্সে একক ইউআরএল পুনর্নির্দেশ করবেন?


111

আমি ইউআরএল কাঠামো পুনর্গঠনের প্রক্রিয়াধীন। নির্দিষ্ট url গুলির জন্য আমাকে পুনর্নির্দেশের নিয়মগুলি সেটআপ করতে হবে - আমি এনজিআইএনএক্স ব্যবহার করছি।

মূলত এরকম কিছু:

http://example.com/issue1 --> http://example.com/shop/issues/custom_issue_name1
http://example.com/issue2 --> http://example.com/shop/issues/custom_issue_name2
http://example.com/issue3 --> http://example.com/shop/issues/custom_issue_name3

ধন্যবাদ!


3
এটা কি "ইসসে" না "ইস্যু" ?! উত্তর "বিষয়" অনুমান ...
— ম্যাথু Wilcoxson

এটি ইস্যু, টাইপ
— টোকমাক

উত্তর:


122

এটি আপনার সার্ভারের নির্দেশিকায় রাখুন:

location /issue {
   rewrite ^/issue(.*) http://$server_name/shop/issues/custom_issue_name$1 permanent;
 }

অথবা এটির সদৃশ করুন:

location /issue1 {
   rewrite ^/.* http://$server_name/shop/issues/custom_issue_name1 permanent;
}
location /issue2 {
   rewrite ^.* http://$server_name/shop/issues/custom_issue_name2 permanent;
}
 ...

139
location ~ /issue([0-9]+) {
    return 301 http://example.com/shop/issues/custom_isse_name$1;
}

@ সাইবোলিক আমি এইটি সংস্করণ সহ একটি ডকার ইমেজে এটি পরীক্ষা করেছি 1.10.3এবং এটি ভাল ছিল, আপনি নিজের কনফিগারেশন ফাইলটি কোনওভাবে সরবরাহ করতে পারেন? আপনি সম্ভবত কিছু অনুপস্থিত।
— মোহাম্মদ আবুশাদি

34

আপনার যদি কয়েকটি পুনঃনির্দেশের চেয়ে বেশি সদৃশ করার প্রয়োজন হয় তবে আপনি মানচিত্রটি ব্যবহারের বিষয়ে বিবেচনা করতে পারেন:

# map is outside of server block
map $uri $redirect_uri {
    ~^/issue1/?$    http://example.com/shop/issues/custom_isse_name1;
    ~^/issue2/?$    http://example.com/shop/issues/custom_isse_name2;
    ~^/issue3/?$    http://example.com/shop/issues/custom_isse_name3;
    # ... or put these in an included file
}

location / {
    try_files $uri $uri/ @redirect-map;
}

location @redirect-map {
    if ($redirect_uri) {  # redirect if the variable is defined
        return 301 $redirect_uri;
    }
}

4
এটি আমি এখানে যা খুঁজছিলাম - এটিকে একটি অন্তর্ভুক্ত ফাইলে রেখে দেওয়া আমার .htaccess ফাইলটিকে অ্যাপাচি থেকে RewritRules পূর্ণ পূর্ণ প্রতিস্থাপনের একটি দুর্দান্ত উপায়।
— জোশ কেরিবউ

3
আপনি কীভাবে কোনও বিদ্যমান অবস্থান / ... প্রক্সি_পাস টাইপ সেটআপের সাথে এই মানচিত্রের পদ্ধতির সমন্বয় করবেন?
— মাইকেল দাউসমান

ইন @redirect-mapআপনি যে অবস্থানটি চেষ্টা করে দেখতে পারেন if ($redirect_uri = "") {return 404;}proxy_pass কাপড় অনুসরণ। ব্যবহার করে পুনর্লিখনের প্রয়োজন হতে পারে $redirect_uri।
— কোল টের্নি

locationআপনার সেটআপের উপর নির্ভর করে এটি 2 টি ব্লকের পরিবর্তে প্রয়োজন হতে পারে । এটি উদাহরণস্বরূপ ক্র্যাফট সিএমএসের জন্য। location ~ ^(.*)$ { if ($redirect_uri) { # redirect if the variable is defined return 301 $redirect_uri; } try_files $uri $uri/ /index.php?p=$uri&$args; }
— luwes
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.