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


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.