ওয়ার্ডপ্রেসে আপেক্ষিক ইউআরএল


115

আমি সর্বদা ওয়ার্ডপ্রেসে হতাশ হয়ে দেখেছি যে চিত্রগুলি, ফাইলগুলি, লিঙ্কগুলি ইত্যাদি সম্পর্কিত URL এর পরিবর্তে একটি নির্ভুল URL সহ ওয়ার্ডপ্রেসে .োকানো হয়। একটি আপেক্ষিক ইউআরএল ডোমেন নাম পরিবর্তন করতে, HTTP এবং https ইত্যাদির মধ্যে পরিবর্তনের জন্য অনেক বেশি সুবিধাজনক Today আজ আমি আবিষ্কার করেছি যে আপনি যদি ডাব্লুপি_সিএনটিআইআরএলকে আপেক্ষিক ইউআরএল দ্বারা সংজ্ঞায়িত করেন তবে আপনি যখন পোস্টগুলিতে ফাইলগুলি সন্নিবেশ করান তখন তারা নিখুঁত url এর পরিবর্তে src এর জন্য আপেক্ষিক url ব্যবহার করে । আমি কি সবসময় চেয়েছিলাম! তবে অফিসিয়াল ওয়ার্ডপ্রেস ডকুমেন্টেশন বলছে যে আপনার একটি সম্পূর্ণ ইউআরআই ব্যবহার করা উচিত যদি ডাব্লুপি_সিএনটিআইআরএল সংজ্ঞায়িত করে থাকেন তবে আপনার ।

ওয়ার্ডপ্রেস কোডেক্স বলেছেন :

এই ডিরেক্টরিটির সম্পূর্ণ ইউআরআইতে WP_CONTENT_URL সেট করুন (কোনও পিছনে স্ল্যাশ নেই), যেমন

define( 'WP_CONTENT_URL', 'http://example/blog/wp-content');

আমি কোনও আপেক্ষিক ইউআরএল ব্যবহার করার সময় সবকিছু ঠিকঠাক বলে মনে হয় eg

define( 'WP_CONTENT_URL', '/my-content-folder');

তবে কি আপেক্ষিক ইউআরআই ব্যবহার করে কিছু সমস্যা আছে? আমি কেবল ভেবে দেখছি যে ওয়ার্ডপ্রেসের একটি যুক্তি থাকতে হবে যা জানিয়েছে এটি একটি সম্পূর্ণ ইউআরআই দিয়ে সংজ্ঞায়িত করা উচিত।


3
আমি অনুমান করি যে উত্তরটি ডাব্লুপি কোড এবং প্লাগইন কোডগুলিতে এর সমস্ত ব্যবহারের নিরীক্ষণ করা হবে তা নিশ্চিত করার জন্য আপনি যে কোনও একটি এটিই পুরো URL হিসাবে ধরে নিচ্ছেন না, তবে আমি কোনও কারণ ভাবতে পারি না এটা আমার মাথার উপরে থেকে ঠিক হবে না।
রুপ

2
এই প্লাগইনটি চেষ্টা করুন wordpress.org/plugins/relative-url বা এটি পড়তে আপনাকে সাহায্য করতে পারে deluxeblogtips.com/2012/06/relative-urls.html
কৃষ্ণ

5
@ কৃষ্ণ: আমরা যদি ডাব্লুপি-কনফিগারেশনে আপেক্ষিক ইউআরএল প্রবেশ করতে পারি তবে আমাদের কেন প্লাগইন লাগবে? প্রশ্নের মূল বিষয়টি হ'ল ডাব্লুপি-কনফিগারেশনে আপেক্ষিক ইউআরএল ব্যবহার করা সমস্যার কারণ হতে পারে কিনা তা খুঁজে বের করা।
আইডানকুরান

36
আমি যখন ওয়ার্ডপ্রেস স্পর্শ করতে পারি তখন আমি কান্নাকাটি করি।
টনি ক্রোনিন

6
@ টনিক্রোনিন খুশি থাকুন এটি দ্রুপাল নয়।
মোটরবাবি

উত্তর:


74

আমি মনে করি এটি কেবলমাত্র কোনও মূল বিকাশকারীই / উত্তর দিতে পারে এমন প্রশ্ন। আমি গবেষণা করেছি এবং মূল টিকিট পেয়েছি # 17048: ব্রাউজারে বিতরণ করা URL গুলি মূল-আপেক্ষিক হওয়া উচিত । যেখানে আমরা নেতৃত্বের মূল বিকাশকারী অ্যান্ড্রু নাকিনের দ্বারা ব্যাখ্যা করা কারণগুলি খুঁজে পেতে পারি। তিনি এই [ডাব্লুপি-হ্যাকার্স] থ্রেডের সাথেও লিঙ্ক করেছেন । এই দুটি লিঙ্কে, ডাব্লুপি কেন আপেক্ষিক ইউআরএল ব্যবহার করে না তার মূল উক্তি:

মূল টিকিট:

  • রুট-সম্পর্কিত ইউআরএলগুলি আসলে যথাযথ নয়। /path/ওয়ার্ডপ্রেস নাও হতে পারে, এটি ইনস্টলের বাইরে থাকতে পারে। সুতরাং সত্যই এটি একটি নিখুঁত URL এর চেয়ে আলাদা নয়।

  • যে কোনও আপেক্ষিক ইউআরএল ইনস্টল স্থানান্তরিত হওয়ার সাথে সাথে রূপান্তরগুলি সম্পাদন করা উল্লেখযোগ্যভাবে আরও কঠিন করে তোলে। বেশিরভাগ পরিস্থিতিতে অনুসন্ধান-প্রতিস্থাপনটি প্রয়োজনীয় হতে চলেছে এবং সেই কারণগুলির জন্য একটি সম্পূর্ণ ইউআরএল থাকা হাস্যকরভাবে আরও বহনযোগ্য।

  • অন্যান্য অসংখ্য স্থানে পরম ইউআরএলগুলির প্রয়োজন। শর্তসাপেক্ষে এগুলি যুক্ত করার প্রয়োজনে প্রক্রিয়াজাতকরণ যুক্ত হবে, পাশাপাশি সম্ভাব্য বাগগুলি (এবং প্লাগিনগুলির সাথে অসুবিধাগুলি) প্রবর্তন করবে।

[ডাব্লুপি-হ্যাকার্স] থ্রেড

  • কিসের সাথে সম্পর্কিত, আমি নিশ্চিত নই, যেহেতু ওয়ার্ডপ্রেস প্রায়শই একটি উপ-ডিরেক্টরিতে থাকে, যার অর্থ আমাদের বাকী বাকী অংশটি যুক্ত করার জন্য সামগ্রীটি সর্বদা প্রক্রিয়া করা প্রয়োজন। এটি ওভারহেডের পরিচয় দেয়।

  • মনে রাখবেন যে অগ্রণী স্ল্যাশ সহ এবং এর বাইরে দুটি প্রকারের আপেক্ষিক URL রয়েছে। উভয়েরই সতর্কতা রয়েছে যা এটিকে যথাযথভাবে প্রয়োগ করা অসম্ভব করে তোলে।

  • ওয়ার্ডপ্রেসকে নিখুঁত ইউআরএল সংরক্ষণ করতে হবে (এবং করবে)। এর জন্য কোনও সামগ্রীর প্রাক প্রসেসিং প্রয়োজন নেই, ওভারহেড নেই, কোনও অস্পষ্টতা নেই। আপনার যদি স্থানান্তরিত করতে হয় তবে এটি ডাটাবেসে একটি বিশ্বব্যাপী অনুসন্ধান-প্রতিস্থাপন।


এবং, একটি ব্যক্তিগত নোটে, একাধিকবার আমি থিম এবং প্লাগইনগুলি পেয়েছি খারাপ কোডিং যা WP_CONTENT_URLসংজ্ঞায়িত হয়ে গেলে কেবল ভেঙে যায় ।
তারা জানেন না যে এটি সেট করা যেতে পারে এবং ধরে নিবেন যে এটি সত্য: ডাব্লুপি.আর.আরএল / ডাব্লুপি-কন্টেন্ট / হোয়াটভার , এবং এটি সবসময় হয় না। এবং পথে কিছু ভাঙ্গবে।


প্লাগইন সম্পর্কিত সম্পর্কিত URL গুলি ( এডস এর উত্তরে লিঙ্কিত ), অ্যাকশন হুকের ফিল্টারগুলিরwp_make_link_relative একটি সিরিজেtemplate_redirect ফাংশনটি প্রয়োগ করে । এটি বেশ সহজ কোড এবং একটি দুর্দান্ত বিকল্প বলে মনে হচ্ছে।


14
ভাল তথ্য। আমি সর্বদা রুট-আপেক্ষিক পাথগুলি ব্যবহার করি যাতে আমি কোনও সমস্যা ছাড়াই dev.mysite.com -> qa.mysite.com -> www.mysite.com বা এমনকি www.anorseite.com এ স্থাপন করতে পারি। এটি দুর্ভাগ্যজনক যে ডাব্লুপিটি এটি মাথায় রেখে তৈরি করা হয়নি। যেহেতু সেটিংটি WP_CONTENT_URLআপেক্ষিক ইউআরএল সেট করার উদ্দেশ্যে করা হয়েছে (যদিও এটি অনুমতি দেয়) মনে হচ্ছে না, তাই প্লাগইনটি সেরা বিকল্প হিসাবে মনে হচ্ছে। কোনও পরীক্ষার কেস রয়েছে যেখানে প্লাগইনটি সেট করার সময় ব্রেক হয় WP_CONTENT_URLতবে প্লাগইনটি ব্যবহার করার সময় ঠিকঠাক কাজ করে?
জাস্টিন

2
আপেক্ষিক পাথগুলি কখনই শুরু হয় না / এবং আপেক্ষিক ইউআরআইগুলি (অভ্যন্তরীণ ব্যবহারের জন্য <a>) কখনই শুরু হয় না http://
তুলিনস কর্ডোভা

13
ওয়ার্ডপ্রেস কখনই সঠিক ওয়েবসাইটগুলির জন্য বোঝানো হত না, এটি সর্বদা একটি দ্রুত হ্যাক ছিল, হ্যাকারদের দ্বারা লিখিত যারা (এখানে উদ্ধৃতিগুলি থেকে স্পষ্টভাবে) বাক্সের বাইরে চিন্তা করেনি বা দেখেনি। আপনি কোনও ওয়েবসাইট সরানোর একমাত্র উপায় হ'ল যদি এটি সঠিকভাবে আপেক্ষিক এবং / অথবা মূল সম্পর্কিত আপেক্ষিক URL গুলি ব্যবহার করে। নিখুঁত ইউআরএল একেবারে এটি প্রতিরোধ করে।
হাকা

8
আমি এমন সাইট তৈরি করেছি যা সাব-ডোমেন, রুট বা সাব ফোল্ডারে থাকার জন্য সেটআপ করা যেতে পারে। এটি খুব কঠিন নয়। আমি মনে করি কারণগুলির কারণগুলি মূলত বলে আসছে "আমরা এটিকে অনেক আগে তৈরি করেছি এবং এই পরিবর্তনটি অনেকাংশে ভেঙে যাবে তাই আমরা এটিকে ঠিক করছি না।"
ডনি ভি।

3
তবুও ভাবেন যে বিকাশকারীদের কোনও কারণই বৈধ নয়। হার্ড কোডেড ইউআরএলটি আপেক্ষিকের মতো একই সমস্যা রয়েছে, এটি আসল বিকাশকারীদের 'খারাপ অভ্যাস' টুলকিটটিতে কেবল অন্যরকম খারাপ অভ্যাস ... ওয়ার্ডপ্রেসে প্রচুর পরিমাণে রয়েছে যার কারণে এটি মুছে ফেলার জন্য বহুবার কাঁটাচামচ করা হয়েছে এই সমস্যাগুলি।
দাওসি

15
<?php wp_make_link_relative( $link ) ?>

সম্পূর্ণ URL টি পাথকে আপেক্ষিক পথে রূপান্তর করুন।

HTTP বা https প্রোটোকল এবং ডোমেন সরান। শুরুতে পথ '/' রাখে, সুতরাং এটি সত্যিকারের আপেক্ষিক লিঙ্ক নয়, তবে ওয়েব রুট বেস থেকে।

তথ্যসূত্র: ওয়ার্ডপ্রেস কোডেক্স


এবং আপনি কোথায় পিএইচপি স্নিপেট ফেলে?
এডওয়ার্ড

6

আমি রূপের সাথে একমত আমার ধারণা, মূল কারণটি আপেক্ষিক পথে বিভ্রান্তি এড়ানো। আমি মনে করি ওয়ার্ডপ্রেস আপেক্ষিক পাথের সাথে স্ক্র্যাচ থেকে কাজ করতে পারে তবে একাধিক প্লাগইন ব্যবহার করার সময় সমস্যাটি আসতে পারে, থিমটি কীভাবে কনফিগার করা হয়েছে ইত্যাদি might

সার্ভার পরীক্ষার কাজ করার সময় আমি একবার এই প্লাগইনটিকে আপেক্ষিক পাথের জন্য ব্যবহার করেছি:

রুট সম্পর্কিত ইউআরএল একই সাইট একাধিক আইপি, সহজ উত্পাদন মাইগ্রেশন এবং উন্নত মোবাইল ডিভাইস পরীক্ষার জন্য একই সাইট হোস্ট করার জন্য সমস্ত ইউআরএলকে মূল- সম্পর্কিত ইউআরএলগুলিতে
রূপান্তর করে।


5
ডাব্লুপি-কনফিগার ফাইলে একটি ধ্রুবক কনফিগার করার জন্য প্লাগইন কেন প্রয়োজনীয় হবে? WP_CONTENT_URLআপেক্ষিক তৈরির কোনও বিশেষ ক্ষতি থেকে বাঁচার জন্য যদি কোনও সমাধান সরবরাহ না করে এবং তার নিজস্ব পদ্ধতির সাথে কোনও সমস্যায় পড়ে না যায়। আমি যেটি জানতে চাই তা হ'ল WP_CONTENT_URLআত্মীয় তৈরির ক্ষেত্রে যদি আসলে কোনও সমস্যা হয় ।
আইডানকুরান

1
ফরোয়ার্ড স্ল্যাশ দিয়ে শুরু হওয়া একটি URL /wp-content/some-file.jpgহ'ল একটি নিখুঁত পথ যা আপেক্ষিক পথ নয়। কোনও সম্ভাব্য বিভ্রান্তি নেই। এটি প্রোটোকল এবং ডোমেন নেমকে নিখুঁত ইউআরএলে অন্তর্ভুক্ত করা যা ওয়ার্ডপ্রেসকে সমর্থনযোগ্যতা ছাড়াই অসহায় করে তোলে। একটি ডাব্লুপি সাইটকে লাইভ থেকে মঞ্চে স্থাপনের জন্য আমাকে একটি ডেটাবেস ডাম্পের ডোমেন নামগুলিতে সন্ধান এবং প্রতিস্থাপন স্ক্রিপ্ট চালাতে হবে। আমার মনে সমস্যাটি হ'ল এটি উত্পাদনে সামগ্রী সম্পাদনা করার জন্য তৈরি করা হয়েছে যা ব্লগের জন্য কাজ করে (যা এটি এর জন্য তৈরি) তবে অনেকগুলি বাণিজ্যিক ওয়েবসাইটের জন্য নয়।
অ্যাডে

1
কীভাবে বাবু / বব / জেন বনাম / বব / জেন বিভ্রান্তিকর? # সেরিয়াস # বিদ্যা অনুশীলন
দাওদী

1
@ এড, দয়া করে আপেক্ষিক পথে আপনার বাড়ির কাজটি করুন। আপনি /wp-content/some-file.jpgএকটি বিমল পথ হিসাবে ভুল are ভবিষ্যতে আপনার মন্তব্য পড়ার জন্য অন্যদের জন্য দয়া করে মনে রাখবেন যে একটি ওয়েব আপেক্ষিক পাথ এমন একটি পথ যা প্রোটোকল এবং ডোমেনটিকে পথ থেকে বাদ দিয়েছে। সুতরাং, /wp-content/some-file.jpgএবং wp-content/some-file.jpgউভয়ই আপেক্ষিক, /অ্যাকাউন্টধারক বা সার্ভারের অ্যাক্সেসযোগ্য মূল ডিরেক্টরিটি উল্লেখ করার উদ্দেশ্যে প্রথম উদাহরণে অগ্রণী হিসাবে রয়েছে।
পেগুজ

1
@ পেগুজস ওকে, আমি "পরম ইউআরএল" এর বিপরীতে "পরম পথ" শব্দটি ব্যবহার করে অনেক উত্স (এসও-তে কিছু) পেয়েছি। এটিকে "রুট রিলেটিভ" পাথ হিসাবেও উল্লেখ করা হয়। যদিও শব্দার্থবিজ্ঞান এবং পরিভাষা অবশ্যই গুরুত্বপূর্ণ তবে মূল বিষয়টি এখনও দাঁড়িয়ে আছে যে তারা একে অপরের সাথে মৌলিকভাবে পৃথক relative অন্য কোনও যুক্তি না থাকলে আমি অবগত নই।
এডি

4

আমি এটি এগুলি ফাংশন.এফপি তৈরি করে আমার সাইটে সমাধান করেছি

add_action("template_redirect", "start_buffer");
add_action("shutdown", "end_buffer", 999);

function filter_buffer($buffer) {
    $buffer = replace_insecure_links($buffer);
    return $buffer;
}
function start_buffer(){
    ob_start("filter_buffer");
}

function end_buffer(){
    if (ob_get_length()) ob_end_flush();
}

function replace_insecure_links($str) {

   $str = str_replace ( array("http://www.yoursite.com/", "https://www.yoursite.com/") , array("/", "/"), $str);

   return apply_filters("rsssl_fixer_output", $str);

}

আমি একটি প্লাগইনের অংশ নিয়েছি, এটি টুকরো টুকরো করে কেটে ফেললাম। এটি আমার সাইটে সমস্ত লিঙ্ক (মেনু, সিএসএস, স্ক্রিপ্টস ইত্যাদি) প্রতিস্থাপন করেছে এবং সবকিছু কাজ করছে।


0

সেটিংস => মিডিয়া এর অধীনে, 'ফাইলগুলির জন্য সম্পূর্ণ URL- পথের' বিকল্প রয়েছে। যদি আপনি এটিকে ফাঁকা পরিবর্তে ডিফল্ট মিডিয়া ডিরেক্টরি পাথ '/ wp-content / ups' এ সেট করেন তবে এটি আপেক্ষিক পাথগুলি প্রবেশ করবে যেমন '/wp-content/uploads/2020/06/docament.pdf'।

আমি নিশ্চিত নই যে এটি সমস্ত লিঙ্কগুলি আপাতত পোস্টগুলিতে করে কিনা, তবে কমপক্ষে এটি মিডিয়া পরিচালনা করে যা সম্ভবত বেশিরভাগ মানুষই চিন্তিত।


এই বিকল্পটি 'ফাইলগুলির সম্পূর্ণ URL পাথ' মিডিয়া সেটিংসে ডিফল্টরূপে উপস্থিত হয় না। ডাব্লুপি-কনফিগারেশনে এমন কিছু সেটিংস রয়েছে যা এটি সক্রিয় করে?
21

@ আইডানকুরান আমি নিশ্চিত যে এটি দীর্ঘকাল ধরে রয়েছে তবে কিছু গবেষণার পরে মনে হচ্ছে কিছু ডাব্লুপি-কনফিগারেশন এটি সর্বোপরি সক্ষম করে দিয়েছে, কারণ এটি ডাব্লুপিপি 3.5+ থেকে ডিফল্টরূপে সরানো হয়েছিল। এটি কোনও পুরানো প্লাগইন ব্যবহার করে আবার ফিরিয়ে আনা যেতে পারে: wordpress.org/plugins/upload-url-path-enabler সুতরাং, আমি অনুমান করি যে আমার কোনও প্লাগইন এটি পিছনে যুক্ত করছে, যদিও আমি সবেমাত্র কোনও ইনস্টলড নেই। প্লাস্টিকের সাথে কেবলমাত্র এলিমেন্টর এবং থিম ফিউচারিও ফুটুরিও অতিরিক্ত ব্যবহার করুন। আমি কোনও পরিবর্তন ছাড়াই তাদের অক্ষম করার চেষ্টা করেছি, তাই নিশ্চিত নয়: /
আলিঙ্গন করুন

@ আইডানকুরান আপনি এই জাতীয় কিছু যুক্ত করতে পারেন: আপডেট_পশন ('আপলোড_আরল_পাথ', '/ ডাব্লুপি-কনটেন্ট / আপলোডস'); থিমের জন্য আপনার ফাংশন.এফপি ফাইলে বা কিছু কোড স্নিপেট প্লাগইন এর মাধ্যমে এবং এতে একই প্রভাব পাওয়া উচিত।
আলিঙ্গন

-3

get_home_url () ব্যবহার করা উচিত, তারপরে আপনার লিঙ্কগুলি সম্পূর্ণ, তবে আপনি সাইটের ইউআরএল পরিবর্তন করলে এটি প্রভাবিত করে না


-4

আমি মনে করি আপনি যা করেন তা হ'ল আপনি ডোমেনের নাম পরিবর্তন করার সময়, আপনার কাছে থাকা যে এসকিএল ডাম্প ফাইলটি আপনি পুরানো ডোমেন নামের সমস্ত দৃষ্টান্ত নতুন সাথে প্রতিস্থাপন করতে পারেন। এটি কেবলমাত্র বিকল্প হিসাবে উপলব্ধ কারণ কোনও প্লাগইন নেই যা আপনাকে এটি করতে সহায়তা করবে।

এটি দ্রুততম উপায় ..


1
মনে রাখবেন আপনি ডোমেন নামটি সিরিয়ালযুক্ত পিএইচপি স্ট্রিংয়েও প্রতিস্থাপন করতে পারবেন। এই সহজ অনুসন্ধান এবং প্রতিস্থাপন সরঞ্জামটি জিনিস করার মানক উপায় বলে মনে হয় ( এখানে গিটহাবের সংগ্রহশালা )। এটি ক্যাপিস্ট্রানো ডিপ্লোয়মেন্ট সলিউশন দ্বারা ব্যবহৃত হয় আমি ক্যাপিস্ট্রানো-ডাব্লুপি এর মতো ব্যবহার করি এবং খুব ভাল কাজ করে বলে মনে হয়। এটি সরকারী মুভিং ওয়ার্ডপ্রেস কোডেক্স পৃষ্ঠাতেও উল্লেখ করা হয় ।
ম্যাট গিবসন

3
এই পদ্ধতির অগোছালো এবং ত্রুটিযুক্ত প্রবণ। আমরা যদি ডাব্লুপি-কনফিগারেশনে আপেক্ষিক ইউআরএলগুলি ব্যবহার করে এড়াতে পারি তবে কি এত ভাল হয় না? প্রশ্নের মূল বিষয়টি হ'ল ডাব্লুপি-কনফিগারেশনে আপেক্ষিক ইউআরএল ব্যবহার করা সমস্যার কারণ হতে পারে কিনা তা খুঁজে বের করা।
আইডানকুরান ২১

-4

একটি সহজ উপায় আছে

/pagename/ব্যবহারের পরিবর্তে index.php/pagename/বা আপনি যদি পারমিলিক ব্যবহার না করেন তবে নিম্নলিখিতগুলি করুন:

পোস্ট

index.php?p=123

পৃষ্ঠা

index.php?page_id=42

বিভাগ

index.php?cat=7

এখানে আরও তথ্য: http://codex.wordpress.org/ লিঙ্কিংপোস্টগুলি_পৃষ্ঠা_পৃষ্ঠা_ এবং_ বিভাগসমূহ


এটি প্রশ্নের উত্তর দেয় না।
মাতেং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.