ডাব্লুপি-কন্টেন্ট / থিমস / নাম / চিত্রগুলি htaccess ব্যবহার করে কেবল চিত্র ডিরেক্টরিতে মাস্কিং করা


10

আমি আমার ইউআরএলটি মাস্ক করার পক্ষে খুব সহজ কিছু বলে মনে করি যা চেষ্টা করছি কিন্তু এটি কাজ করে বলে মনে হচ্ছে না। আমি পূর্ণ ইউআরএল টাইপ না করেই আমার আইএমজি ট্যাগের চিত্রগুলিতে লিঙ্ক করতে সক্ষম হতে চাই।

অর্থাত

Current url:  http://server.com/wp-content/themes/standard/images/img.jpg
or
<img src = "http://server.com/wp-content/themes/standard/images/img.jpg" />

তবে আমার পৃষ্ঠাগুলিতে আমি ঠিক করতে চাই

<img src="http://server.com/images/img.jpg" />

তবে আমার লোকালহোস্টে কিছুই কাজ করছে বলে মনে হচ্ছে না। আমি উইন্ডোজ 7 মেশিনে অ্যাপাচি সার্ভার চালাচ্ছি। আমি উপরে বর্ণিত জিনিসগুলি করার জন্য একটি .htaccess ব্যবহার করার চেষ্টা করছি। আমার ওয়েবসাইটের মূলটিতে আমার .htaccess ফাইলটি এখানে।

আপডেট: আমি নীচে ZweiBlumen পরামর্শ চেষ্টা করেছিলাম কিন্তু এটি কার্যকর হয়নি বলে মনে হচ্ছে। তারপরে আমি জের্টস পরামর্শটি চেষ্টা করেছিলাম এবং আমার অ্যাডমিন ফোল্ডারের আমার Misc.php এ পুনর্লিখনের পদ্ধতিটি যুক্ত করেছি। আমি তখন আমার পারমিলিক্স পৃষ্ঠায় গিয়ে সেভ টিপুন। এটি করার ফলাফলটির অর্থ আমার .htaccess ফোল্ডারটি পুনরায় লেখা হয়েছিল এবং এটি উত্পাদিত আউটপুট নীচে।

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^css/(.*) /wp-content/themes/standard/css/$1 [QSA,L]
RewriteRule ^js/(.*) /wp-content/themes/standard/js/$1 [QSA,L]
RewriteRule ^images/(.*) /wp-content/themes/standard/images/$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

তবে আমি এখনও আমার চিত্র ফোল্ডারে যেমন নেভিগেট করতে পারি না:

http: //localhost/images/myimage.jpg

আমি যা পাই তা একটি পৃষ্ঠা খুঁজে পাওয়া যায় নি। জোশুয়ার পরামর্শটি পুরোপুরি কার্যকর হয়েছে তবে আমি ইমেজগুলির ইউআরএলটি মাস্ক করার সাথে এটি ব্যবহার করার আশা করছি ing

আমি অন্যায় করতে পারে অন্য কিছু আছে, বা চেক করা উচিত?

হালনাগাদ:

যে কারও এটি পড়ার জন্য, আমি আবার চেষ্টা করেছি এবং এটি জের্টস এবং জোশুয়া পদ্ধতির সংমিশ্রণটি ব্যবহার করে কাজ করেছে। আমার ফায়ারফক্স ব্রাউজারটি পৃষ্ঠাটি ক্যাশে করছে বলে মনে হচ্ছে যা আমাকে তা ভাবেনি বলে মনে করছে।

.Htaccess ফাইলে এটি যুক্ত করার কারণে আমি যে কারণে চলেছি তা হ'ল প্রতিবারই পারমালিঙ্কস অ্যাডমিন পৃষ্ঠাতে গেলে এই ফাইলটি ওভাররাইট করা হয় এবং তাই আমি দুর্ঘটনাক্রমে এটিকে ওভাররাইট করতে চাই না। আমি অনুমান করি যে আমি এটি কোনওভাবে বন্ধ করতে পারি তবে কীভাবে এটি করবেন তা নিশ্চিত নয়। তিনটি উত্তরই কিছুটা হলেও সাহায্য করেছিল।

উত্তর:


10

পরীক্ষা করে দেখুন রুটস ওয়ার্ডপ্রেস থিম । ইউআরএলগুলি দিয়ে আপনি যা চান ঠিক তেমন তারা করছে বলে মনে হয়।

তাদের মূল-htaccess.php ফাইল থেকে একটি স্নিপেট এখানে রয়েছে :

add_action( 'generate_rewrite_rules', 'roots_add_rewrites' );

function roots_add_rewrites($content) {
  $theme_name = next( explode( '/themes/', get_stylesheet_directory() ) );
  global $wp_rewrite;
  $roots_new_non_wp_rules = array(
    'css/(.*)' => 'wp-content/themes/' . $theme_name . '/css/$1',
    'js/(.*)'  => 'wp-content/themes/' . $theme_name . '/js/$1',
    'img/(.*)' => 'wp-content/themes/' . $theme_name . '/img/$1',
  );
  $wp_rewrite->non_wp_rules += $roots_new_non_wp_rules;
}

দ্রষ্টব্য: আপনি যদি .htaccessZweiBlumen এর উত্তরের মতো এটি কোনও ফাইলের মধ্যে সরাসরি টানতে পারেন তবে আপনার সম্ভবত সেই সমাধানটি বেছে নেওয়া উচিত কারণ এটি সম্ভবত আরও অনুকূলিত।


1
যদিও আমি এই পদ্ধতির জন্য যা খুঁজছিলাম তা না হলেও এডমিন পারমলিংকস পৃষ্ঠার মাধ্যমে .htaccess এ নিয়মগুলি সংরক্ষণ করার পরে শেষ হয়েছিল। আমি জোশুয়ার সাথে একযোগে এই পদ্ধতিটি ব্যবহার করে শেষ করেছি এবং এটি পুরোপুরি কার্যকরভাবে কাজ করে। সাহায্যের জন্য ধন্যবাদ.
ড্রায়জা

দুর্দান্ত, পারফরম্যান্সের জন্য এটি ভাল জিনিস তারা পুনরায় লেখকগুলিকেও .htaccess এ রাখে।
Geert

আমি মনে করি এই পদ্ধতিটি আপনার .htaccess এ হার্ড কোডিংয়ের সাথে তুলনা করে পুরোপুরি ঠিক আছে। কারণ এখানে আপনি কোনও থিমের ফাংশন.এফপি এর উপর ভিত্তি করে এটি পরিচালনা করতে পারেন এবং প্রয়োজনে এই বিধিগুলি বন্ধ করতে পারেন।
জেক

এটি আসলে ওয়ার্ডপ্রেসের জন্য সেরা পদ্ধতি। ডাব্লুপি পুনর্লিখনের নিয়মগুলি কেবল পারমালিক্স কাঠামো আপডেট করার সময় তৈরি করা হয়, সুতরাং আপনি এখানে যা করছেন তা মূলত এটি আপনার .htaccess এ লিখতে হবে; জ্যাক যেমন বলেন তবুও আরও পরিচালনাযোগ্য ফ্যাশনে।
pospi

1
সম্ভবত wp-content/themesলক্ষ্যবস্তুগুলি সরানো হওয়ায় সম্ভবত হার্ড কোডিং করা উচিত নয় । global $wp_theme_directoriesসমস্ত নিবন্ধিত থিম ডিরেক্টরিতে লুপ করতে এবং বর্তমানে সক্রিয় থিম সনাক্ত করতে ব্যবহৃত হতে পারে। এবং বিষয়বস্তু dir WP_CONTENT_DIRএর define()এড নাম পেতে ব্যবহার করা যেতে পারে । যাইহোক, এই উত্তরটিতে +1।
কায়সার

6

যদি সমস্যাটি কেবল চিত্রগুলির সাথে থাকে তবে সিএসএস বা জাভাস্ক্রিপ্ট নয়, আমার মনে হয় আপনার রাইরাইটরুলেলে একটি টাইপো রয়েছে। আমি মনে করি আপনার "$" এর পরে একটি "1" নিখোঁজ হয়েছে:

RewriteRule ^images/(.*)$ wp-content/themes/standard/images/$1 [L]

এছাড়াও, আপনি এই অতিরিক্ত বিবৃতিগুলি প্রাথমিক নিয়মের নীচে অর্থাৎ এই লাইনের নীচে রাখার চেষ্টা করতে চাইতে পারেন:

RewriteRule ^index\.php$ - [L]

যদিও নিশ্চিত না।


এই যা। দেখেনি। ধন্যবাদ আমি একবার যেতে হবে।
dreza

4

আপনি নিম্নলিখিত পদ্ধতিতে কেন একটি শর্টকোড তৈরি করবেন না।

function img_folder_shortcode( ) {
   return get_stylesheet_directory_uri() . '/images';
}
add_shortcode( 'img_folder', 'img_folder_shortcode' );

এবং তারপরে সামগ্রী ক্ষেত্রের যে কোনও জায়গায় নীচের শর্টকোডটি ব্যবহার করুন।

[img_folder]/img.jpg
<img src="[img_folder]/img.jpg" alt="img" />

হুঁ, আমি বিষয়বস্তুতে [img_folder] ব্যবহারের দক্ষতা পছন্দ করি, যদিও আমি কেবলমাত্র / ইমেজগুলির url পুরো ডাব্লুপি-সামগ্রী উন্মুক্ত না করে রাখতে চাইছিলাম। যাইহোক, জির্টস এবং জুইব্লিমেন্স উত্তরগুলির সাথে এটির সংমিশ্রণের দিকে নজর দিতে পারে যদি আমি তাদের কাছে যাই।
ড্রায়জা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.