.Htaccess দিয়ে .pp এক্সটেনশন সরান


103

হ্যাঁ, আমি অ্যাপাচি ম্যানুয়ালটি পড়েছি এবং এখানে অনুসন্ধান করেছি। কিছু কারণে আমি কেবল এটি কাজ করতে পারি না। সবচেয়ে কাছাকাছি এসেছি এটি এক্সটেনশনটি সরিয়ে নিয়েছে, তবে এটি মূল ডিরেক্টরিতে নির্দেশ করে। আমি এটি কেবল .htaccessফাইল ডিরেক্টরিতে কাজ করতে চাই ।

.htaccessফাইলটি নিয়ে আমার তিনটি জিনিস করা দরকার ।

  1. .Php অপসারণ করার জন্য আমার এটি দরকার

    ক। আমার বেশ কয়েকটি পৃষ্ঠাগুলি রয়েছে যা ট্যাব ব্যবহার করে এবং URL টি URL_php # ট্যাব বলে মনে হয় - এটি কি সম্ভব?

    খ। আমার একটি পৃষ্ঠা রয়েছে যা আপনি সঠিক জায়গা থেকে এসেছেন তা নিশ্চিত করতে, URL এ যুক্ত একটি সেশন আইডি ব্যবহার করে www.domain.com/download-software.php?abcdefg

এটা কি সম্ভব? এটি করার ক্ষেত্রেও কি আমার শিরোনাম নেভের লিঙ্কগুলি থেকে ".php" সরানোর দরকার আছে ফাইল অন্তর্ভুক্ত? উচিতIE "<a href="support.php">support</a>" be <a href="support">support</a>?

  1. আমি এটি প্রতিটি URL এর আগে "www" চাপিয়ে দিতে চাই, তাই এটি নয় domain.com, তবে www.domain.com/page
  2. আমি পৃষ্ঠা থেকে সমস্ত অনুসরণীয় স্ল্যাশ সরিয়ে ফেলতে চাই।

আমি খুঁজছি, চেষ্টা করা ইত্যাদি করব? একটি উপ ডিরেক্টরিতে থাকা কোনও সমস্যার কারণ হতে পারে?



আমি শুধু কৌতুহলী, এই কি লাভ? এটি কি যাতে আপনার ব্যবহারকারীরা আপনার সার্ভারে কোন ফাইলটি অ্যাক্সেস করছেন তা জানেন না?
কলব ক্যানিয়ন

দুই ভাঁজ সুতরাং আমরা জানি না যে আমরা কী ধরনের ফাইলগুলি পরিবেশন করছি এবং এটি কেবল পরিষ্কার দেখাচ্ছে IMO
ডার্টি বার্ড ডিজাইন

আরেকটি সম্পর্কিত প্রশ্ন: স্ট্যাকওভারফ্লো . com/ প্রশ্নগুলি / 6534904/…
এডওয়ার্ড 21

উত্তর:


123

স্ট্যাক ওভারফ্লো প্রশ্নে গাম্বোর উত্তর কীভাবে আপাচি মোড_উইরাইট দিয়ে .html এক্সটেনশনটি লুকানো যায় তা ঠিক কাজ করা উচিত।

পুনরায় 1) .html কে। Php এ পরিবর্তন করুন

পুনরায়।) হ্যাঁ, এটি সম্ভব, কেবলমাত্র #tabইউআরএল যুক্ত করুন।

পুন। বি।) এটি সম্ভব QSA(কোয়েরি স্ট্রিং সংযোজন) ব্যবহার করে নীচে দেখুন।

এটি একটি উপ ডিরেক্টরি ডিরেক্টরিতেও কাজ করা উচিত :

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]

আপনার সাহায্যের জন্য থেক্স, যে কোনও কারণেই হোক না কেন, আইড বেটের কারণে সেশন অ্যাপেন্ডেড ইউআরএল পিএইচপি ফাইলটিতে হার্ডকোড করা হয়েছে (দীর্ঘ গল্প) আমি উপরেরটি ছাড়াই এটি অ্যাক্সেস করতে সক্ষম হয়েছি। আমি আপনার সাহায্যের সত্যই প্রশংসা করি, এই .htaccess স্টাফটি আমার পক্ষে কৌশলযুক্ত।
নোংরা পাখি ডিজাইন

8
@ পেপকা space [L,স্পেস QSA]ফ্ল্যাগের মধ্যে স্থান সরিয়ে ফেলুন , অন্যথায় 500 অভ্যন্তরীণ সার্ভার ত্রুটির কারণ হবে।
রহিল উজির

এই করতে হবে /index/bla/blaহতে একই হিসাবেindex.php
elkebirmed

কোনও কারণে এটি আমার সিএসএস লোড করতে ব্লক করে: /
TheCrazyProforter 5'18

! মানে না। এই নিয়মটি কেবল এটি।
Php

71

অ্যাপাচি মোড_উরাইট

আপনি যা খুঁজছেন তা হল মোড_উইরাইট ,

বিবরণ: ফ্লাইতে অনুরোধ করা ইউআরএলগুলি পুনরায় লেখার জন্য একটি নিয়ম-ভিত্তিক পুনর্লিখন ইঞ্জিন সরবরাহ করে।

সাধারণভাবে বলতে গেলে, mod_rewriteনির্দিষ্ট নিয়মিত অভিব্যক্তির বিপরীতে অনুরোধ করা দস্তাবেজটি মিলিয়ে কাজ করে, তারপরে অভ্যন্তরীণভাবে (অ্যাপাচি প্রক্রিয়াটির মধ্যে) বা বাহ্যিকভাবে (ক্লায়েন্ট ব্রাউজারে) ইউআরএল পুনর্লিখন করে। এই পুনর্লিখনগুলি অভ্যন্তরীণভাবে উদাহরণ.ফু / বারের জন্য একটি অনুরোধ হিসাবে উদাহরণ.com/foo অনুবাদ করার মতোই সহজ হতে পারে।

অ্যাপাচি ডক্সে একটি mod_rewriteগাইড অন্তর্ভুক্ত রয়েছে এবং আমি মনে করি আপনি করতে চান এমন কিছু বিষয় এতে আবৃত। বিস্তারিত মোড_উইরাইট গাইড

ফোর্স wwwসাবডোমেন

আমি এটি প্রতিটি url এর আগে "www" চাপিয়ে দিতে চাই, সুতরাং এটি ডোমেইন ডটকম নয় বরং www.domain.com/page page

পুনর্লিখনের নির্দেশিকায় ক্যানোনিকাল হোস্টনেম উদাহরণ অনুসারে এর জন্য নির্দেশাবলী অন্তর্ভুক্ত রয়েছে ।

ট্রেলিং স্ল্যাশগুলি সরান (পর্ব 1)

আমি পৃষ্ঠা থেকে সমস্ত অনুসরণীয় স্ল্যাশ সরিয়ে ফেলতে চাই

আমি নিশ্চিত নই যে আপনি কেন এটি করতে চাইবেন কারণ পুনর্লিখনের গাইডটিতে হুবহু বিপরীত উদাহরণ রয়েছে , যেমন সর্বদা একটি পিছনের স্ল্যাশ সহ। দস্তাবেজগুলি পরামর্শ দেয় যে পিছনে স্ল্যাশ সরিয়ে ফেলার সমস্যা সৃষ্টির দুর্দান্ত সম্ভাবনা রয়েছে:

ট্রেলিং স্ল্যাশ সমস্যা

বর্ণনা:

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

আপনি কেন পুরোপুরি পিছনে থাকা স্ল্যাশটি মুছে ফেলতে চান তা নিয়ে আপনি প্রসারিত করতে পারেন?

.phpএক্সটেনশন সরান

.Php অপসারণ করার জন্য আমার এটি দরকার

এটি করার সবচেয়ে কাছের জিনিসটি যা আমি ভাবতে পারি তা হ'ল অভ্যন্তরীণভাবে একটি পিএইচপি এক্সটেনশন সহ প্রতিটি অনুরোধ ডকুমেন্টকে পুনরায় লিখন করা, উদাহরণস্বরূপ, ডটকম / সোমপেজের পরিবর্তে উদাহরণস্বরূপ.com/somepage.php এর অনুরোধ হিসাবে প্রক্রিয়া করা হয়। নোট করুন যে এই পদ্ধতিতে অগ্রসর হওয়ার জন্য প্রতিটি সিস্টেমে আসলে ফাইল সিস্টেমে কিছু পৃষ্ঠাগুলি উপস্থিত থাকতে পারে ph

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

উদাহরণস্বরূপ, উদাহরণস্বরূপ এটি একটি অনুরোধ হিসাবে example.com / টেক্সট পুনঃলিখন করবে:

RewriteEngine  on
RewriteRule ^(.*)$ $1.php

উদাহরণস্বরূপ ডটকম লোড করতে ব্যর্থ করে দেবে কারণ এখানে কোন উদাহরণ.com/.php নেই

আমি অনুমান করতে চলেছি যে আপনি যদি সমস্ত পেছনের স্ল্যাশগুলি অপসারণ করেন তবে পিতামাতার ডিরেক্টরিতে ফাইলের জন্য একটি অনুরোধ থেকে ডিরেক্টরি সূচকের জন্য একটি অনুরোধ বাছাই করা প্রায় অসম্ভব হয়ে যাবে। ডিরেক্টরি 'foobar' জন্য আপনি কীভাবে একটি অনুরোধ নির্ধারণ করবেন:

example.com/foobar

foobar নামক কোনও ফাইলের অনুরোধ থেকে (যা আসলে foobar.php)

example.com/foobar

আপনি যদি RewriteBaseনির্দেশটি ব্যবহার করেন তবে এটি সম্ভবত সম্ভব । তবে যদি আপনি এটি করেন তবে এই সমস্যাটি আরও জটিল হয়ে RewriteCondউঠবে কারণ আপনি কোনও ডিরেক্টরি বা কোনও ফাইলের জন্য অনুরোধের মানচিত্র কিনা তা ফাইল সিস্টেমের স্তরের চেক করার জন্য নির্দেশনা প্রয়োজন ।

এটি বলে, যদি আপনি সমস্ত লেজযুক্ত স্ল্যাশগুলি অপসারণের প্রয়োজনীয়তা সরিয়ে ফেলেন এবং এর পরিবর্তে জোর-সংযুক্ত ট্রেলিং স্ল্যাশগুলি "না। পিএফপি এক্সটেনশন" সমস্যাটি কিছুটা যুক্তিসঙ্গত হয়ে ওঠে।

# Turn on the rewrite engine
RewriteEngine  on
# If the request doesn't end in .php (Case insensitive) continue processing rules
RewriteCond %{REQUEST_URI} !\.php$ [NC]
# If the request doesn't end in a slash continue processing the rules
RewriteCond %{REQUEST_URI} [^/]$
# Rewrite the request with a .php extension. L means this is the 'Last' rule
RewriteRule ^(.*)$ $1.php [L]

এটি এখনও নিখুঁত নয় - কোনও ফাইলের প্রতিটি অনুরোধের অভ্যন্তরীণভাবে অনুরোধের সাথে .php যুক্ত হয়। 'Hi.txt' এর জন্য একটি অনুরোধ এটি আপনার ত্রুটিযুক্ত লগগুলিতে রাখবে:

[Tue Oct 26 18:12:52 2010] [error] [client 71.61.190.56] script '/var/www/test.peopleareducks.com/rewrite/hi.txt.php' not found or unable to stat

তবে আরও একটি বিকল্প রয়েছে, এর মতো নির্দেশাবলী DefaultTypeএবং সেট করুন DirectoryIndex:

DefaultType application/x-httpd-php
DirectoryIndex index.php index.html

2013-10-14 আপডেট করুন - নিকোরেলিয়াসের পর্যবেক্ষণকে সংযুক্ত করতে উপরের স্নিপেটটি স্থির করে

এখন হাই.এসটিএসটি (এবং অন্য যে কোনও কিছু) জন্য অনুরোধ সফল হয়েছে, উদাহরণ.টেষ্ট / অনুরোধের অনুরোধগুলি টেস্ট.এফপি এর প্রক্রিয়াযুক্ত সংস্করণটি ফিরিয়ে দেবে, এবং সূচি.এফপিপি ফাইলগুলি আবার কাজ করবে।

এই সমাধানের জন্য ক্রেডিট দেওয়ার জন্য যেখানে অবশ্যই ক্রেডিট দিতে হবে আমি পিএইচপি কোনও এক্সটেনশন অ্যাপাচি গুগল অনুসন্ধান করে মাইকেল জে। রেডউইনস ব্লগকে খুঁজে পেয়েছি ।

ট্রেলিং স্ল্যাশগুলি সরান

কিছু অনুসন্ধান apache remove trailing slashesআমাকে কিছু অনুসন্ধান ইঞ্জিন অপ্টিমাইজেশন পৃষ্ঠাগুলিতে নিয়ে আসে। স্পষ্টতই কিছু বিষয়বস্তু পরিচালনা সিস্টেম (এই ক্ষেত্রে দ্রুপাল) ইউআরএলএসে এবং এর পিছনে পিছনে থাকা কোনও স্ল্যাশ ছাড়াই সামগ্রী সরবরাহ করবে, যা এসইও বিশ্বে আপনার সাইটের ডুপ্লিকেট সামগ্রী জরিমানার কারণ হতে পারে। সূত্র

সমাধানটি মোটামুটি তুচ্ছ মনে হয়, mod_rewriteআমরা অনুরোধ করা সংস্থানটি যে অবস্থায় শেষ হয় /এবং 301 Permanent Redirectএইচটিটিপি শিরোনামটি ফেরত পাঠিয়ে ইউআরএল পুনর্লিখন করে সেই শর্তে পুনর্লিখন ব্যবহার করে ।

এখানে তার উদাহরণ যা ধরে নিয়েছে আপনার ডোমেনটি ব্লেমকাস্ট.এনএল এবং অনুরোধটি allyচ্ছিকভাবে প্রিফিক্স করার অনুমতি দেয় www.

#get rid of trailing slashes
RewriteCond %{HTTP_HOST} ^(www.)?blamcast\.net$ [NC]
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

এখন আমরা কোথাও পাচ্ছি। এগুলি সমস্ত একসাথে রাখুন এবং দেখতে দেখতে এটি কেমন দেখাচ্ছে।

বাধ্যতামূলক www., না .phpএবং কোনও পিছনে টুকরো টুকরো টুকরো না

এটি ধরে নিয়েছে ডোমেনটি foobar.com এবং এটি স্ট্যান্ডার্ড পোর্ট ৮০ এ চলছে।

# Process all files as PHP by default
DefaultType application/x-httpd-php
# Fix sub-directory requests by allowing 'index' as a DirectoryIndex value
DirectoryIndex index index.html

# Force the domain to load with the www subdomain prefix
# If the request doesn't start with www...
RewriteCond %{HTTP_HOST}   !^www\.foobar\.com [NC]
# And the site name isn't empty
RewriteCond %{HTTP_HOST}   !^$
# Finally rewrite the request: end of rules, don't escape the output, and force a 301 redirect
RewriteRule ^/?(.*)         http://www.foobar.com/$1 [L,R,NE]

#get rid of trailing slashes
RewriteCond %{HTTP_HOST} ^(www.)?foobar\.com$ [NC]
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

RewriteRuleনির্দেশক বিভাগে 'আর' পতাকা বর্ণিত হয়েছে । স্নিপেট:

redirect|R [=code](জোর করে পুনর্নির্দেশ) বাহ্যিক পুনঃনির্দেশকে বাধ্য করতে প্রিফিক্স সাবস্টিটিউশন http://thishost[:thisport]/(যা নতুন ইউআরএলকে ইউআরআই করে তোলে) দিয়ে। যদি কোনও কোড দেওয়া না হয় তবে 302 ( মুভিড স্মরণীয় ) এর একটি HTTP প্রতিক্রিয়া ফিরে আসবে।

চূড়ান্ত নোট

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

একটি সাধারণ ড্রুপাল সাইটে, পরিষ্কার ইউআরএল সক্ষম করে, এই দুটি ঠিকানা মূলত বিনিময়যোগ্য

কোনও স্ল্যাশ ছাড়াই এবং ছাড়াই শেষ হওয়া URL গুলি reference তদ্ব্যতীত,

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


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

আমি সুচিন্তিত, সংগঠিত উত্তরগুলি দেখতে পছন্দ করি। চমৎকার কাজ ... একটি জিনিস আমি লক্ষ্য করেছি: আপনার মানে DirectoryIndex index index.html? বা DirectoryIndex index.php index.html?
নিকোরেলিয়াস

@ কোনোরেলিয়াস বিশ্বাস করেন আপনি সঠিক আছেন। আপনার পর্যবেক্ষণের সাথে আমি আমার আসল উত্তরটি আপডেট করেছি।
টিম বিলাওয়া

আমার অবশ্যই বলতে হবে এটি সবসময় কাজ করে না। নীচে উত্তর চেষ্টা করুন (ব্যবহারকারীর 1079877)
ডোনজয়

আপনি প্রকৃত এমভিপি।
জয়নজাহের06

49

উপরের অন্যান্য উত্তর ছাড়াও,

আপনার ফাইল থেকে সম্পূর্ণরূপে। Php এক্সটেনশানগুলি সরাতে এবং অসীম লুপ এড়াতে আপনি এটি ব্যবহার করতে পারেন :

RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [NC,L]

এই কোডটি রুট / .htaccess এ কাজ করবে, আপনি যদি সাব ডিরেক্টরিতে এইচটিসেসি ফাইলটিতে রাখতে চান তবে RewritBase পরিবর্তন করতে ভুলবেন না।

সম্পাদনা করুন:

অ্যাপাচি ২.৪ এবং তারপরে, আপনি অসীম লুপ ত্রুটি রোধ করতে ও শেষ পতাকা ব্যবহার করতে পারেন। নিম্নলিখিত উদাহরণটি অ্যাপাচি ২.৪-তে উপরের মত একই কাজ করে,

RewriteEngine on

RewriteRule ^(.+)\.php$ /$1 [R,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ /$1.php [NC,END]

11
হাই, এই জন্য আপনাকে ধন্যবাদ। আমি পিএইচপি কে কাটাতে অনেকগুলি সমাধান চেষ্টা করেছি তবে এটি কেবল সঠিকভাবে কাজ করেছে :)
বিমকিলার

4
ধন্যবাদ! এই সম্পাদনাটি এটির যেখানে, অ্যাপাচি ২.৪, অ্যাপাচি 2.5 অসীম লুপে শেষ হয় (এবং 500) (সমাপ্ত হবে) অতি গুরুত্বপূর্ণ
জেক বোলেম

23

নিম্নলিখিত কোডটি আমার পক্ষে ভাল কাজ করে:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

উদাহরণস্বরূপ.কম ব্যতীত এটি কাজ করে সমস্ত ফাইল এবং ডিরেক্টরিগুলির সূচকে পরিণত হয়। (অ্যাপাচি ২.৪)
আর্থ


10

প্যারামিটার পরিবর্তন করার পরে AllowOverrideথেকে Noneথেকে All/etc/apache2/apache2.conf, (ডেবিয়ান 8) নিম্নলিখিত এই , .htaccess ফাইল মাত্র থাকা আবশ্যক:

Options +MultiViews
AddHandler php5-script php
AddType text/html php

এবং ফাইল থেকে। Php এক্সটেনশনটি আড়াল করার জন্য এটি যথেষ্ট ছিল


এই এক উচ্চতর হতে চান। ইউএসএল পুনর্লিখনের ওভারহেডটি কেন বিরক্ত করবেন যখন MultiViewsএই বাক্সটির বাইরে থাকবে
ফিল

এটা অসাধারণ. কোন ত্রুটি?
সংস্কার

@ সংস্কার ধন্যবাদ আমি থেকে পরিবর্তন লিঙ্ক ছিল <a href="somepage.php">লিংক </a>থেকে <a href="somepage">লিংক </a>সোর্স কোডে
রব্নি মারিয়া ত্রিনিদাদ সানচেজ

9

এটি চেষ্টা করুন
নীচের কোডটি অবশ্যই কাজ করবে

RewriteEngine on
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule ^ /%1 [NC,L,R]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [NC,L]

6

অন্যান্য উত্তরগুলি কেন আমার পক্ষে কার্যকর হয়নি তা নিশ্চিত নই তবে এই কোডটি আমি পেয়েছি তা হ'ল:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

আমার htaccess এ যা কিছু রয়েছে এবং example.com পৃষ্ঠা উদাহরণ / পৃষ্ঠাগুলি দেখায়


ধন্যবাদ আমার জন্য কাজ করে
শোয়েব শেখ

5

আমি নিম্নলিখিত ওয়ার্কিং কোডটি দিয়ে শেষ করেছি:

RewriteEngine on 
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule ^ /%1 [NC,L,R]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [NC,L]

এটি আমার জন্য ধন্যবাদ, ধন্যবাদ
চামঠ বিরাঙ্গা

4

পিএইচপি ফাইল থেকে .pp এক্সটেনশন সরানোর জন্য উদাহরণস্বরূপ thyite.com/about.php thyite.com/about- এ এই পদক্ষেপটি অনুসরণ করুন। আপনার ওয়েবসাইটের মূল থেকে .htaccess (উপস্থিত না থাকলে একটি নতুন তৈরি করুন) খুলুন এবং নিম্নলিখিত কোডটি যুক্ত করুন।

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

এইচটিএমএল ফাইল থেকে .html এক্সটেনশানটি সরিয়ে ফেলতে উদাহরণস্বরূপ thyite.com/about.html thyite.com/about থেকে এই পদক্ষেপটি অনুসরণ করুন।

আপনার ওয়েবসাইটের মূল থেকে .htaccess (উপস্থিত না থাকলে একটি নতুন তৈরি করুন) খুলুন এবং নিম্নলিখিত কোডটি যুক্ত করুন।

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]

তথ্যসূত্র: URL থেকে পিএইচপি এক্সটেনশন কীভাবে সরান Remove


3

আমি আমার জন্য 100% কার্যকরী ধারণা পেয়েছি:

# Options is required by Many Hosting
Options +MultiViews

RewriteEngine on

# For .php & .html URL's:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^([^\.]+)$ $1.html [NC,L]

আপনার ওয়েবসাইটের রুটে এই কোডটি ব্যবহার করুন। Htaccess ফাইলের মতো:

অফলাইন - wamp \ www \ YourWebDir

অনলাইন - পাবলিক_এইচটিএমএল /

যদি এটি সঠিকভাবে কাজ করে না, তবে আপনার ওয়্যাম্প সার্ভারের সেটিংসটি পরিবর্তন করুন: 1) বাম ক্লিক করুন ডাব্লুএএমপি আইকন 2) অ্যাপাচি 3) অ্যাপাচি মডিউল 4) বাম ক্লিক করুন পুনর্লিখন_মডিউল


আপনি একে অপরের পাশে RewriteRuleট্যাগ সহ দুটি থাকতে পারে না L। এটি নির্দিষ্ট করার জন্য এটি সর্বশেষ নিয়ম [L]বলে । mod_rewriteRewriteCond
এমডি এক্সএফ

2

আপনি যদি পিএইচপি-তে কোডিং দিচ্ছেন এবং। পিএফপি অপসারণ করতে চান তবে আপনার মতো URL টি থাকতে পারে:

http://yourdomain.com/blah -> যা /blah.php এ নির্দেশ করে

এই আপনার প্রয়োজন হয়:

<IfModule mod_rewrite.c>
    RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>

2

.phpফাইল কোড থেকে এক্সটেনশানটি লুকানোর জন্য আমি এখানে কোডটি ব্যবহার করেছি :

## hide .php extension
# To redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L,NC]

দ্রষ্টব্য: R=301স্থায়ী পুনঃনির্দেশের জন্য এবং এসইও উদ্দেশ্যে ব্যবহার করার জন্য সুপারিশ করা হয়। তবে যদি কেউ কেবল একটি অস্থায়ী পুনঃনির্দেশ চায় তবে এটিকে ন্যায়বিচারের সাথে প্রতিস্থাপন করুনR


1

যদি পিএইচপি-তে আপনার ইউআরএল http://yourdomain.com/demo.php এর মতো হয় তবে http://yourdomain.com/demo এর মতো আসে

এই আপনার প্রয়োজন হয়:

ফাইল .htaccess তৈরি করুন

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^([^\.]+)$ $1.html [NC,L]
RewriteRule ^([^\.]+)$ $1.php [NC,L]

এটি কাজ করেছে http://example.com/myfile তবে এটি কাজ করে না http://example.com/myfolder/(সূচী ফাইল)। আপনি কি আমাকে সূচী ফাইলটির জন্য কাজ করতে সহায়তা করতে পারেন?
ওয়েসলি

আমার মনে হয় আপনি উপরে @starkeen উত্তর URL দিয়ে চেষ্টা করা উচিত: stackoverflow.com/a/30566026/3786343
কমলেশ

1

চেষ্টা করুন

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ $1.php [L] 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.