.htmlস্থির পৃষ্ঠার ইউআরএল থেকে কীভাবে সরিয়ে নেওয়া যায়?
এছাড়াও, আমার যে কোনও ইউআরএলটি .htmlছাড়া এটির সাথে পুনঃনির্দেশ করা দরকার । (অর্থাত www.example.com/page.htmlকরতে www.example.com/page)।
.htmlস্থির পৃষ্ঠার ইউআরএল থেকে কীভাবে সরিয়ে নেওয়া যায়?
এছাড়াও, আমার যে কোনও ইউআরএলটি .htmlছাড়া এটির সাথে পুনঃনির্দেশ করা দরকার । (অর্থাত www.example.com/page.htmlকরতে www.example.com/page)।
উত্তর:
আমি মনে করি জনের জবাবের কিছু ব্যাখ্যা গঠনমূলক হবে। পরবর্তী:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
যথাযথভাবে নির্দিষ্ট ফাইল বা ডিরেক্টরি উপস্থিত না থাকলে যাচাই করে তা পুনরায় লেখার নিয়মটি এগিয়ে যায়:
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
তবে তার মানে কী? এটি রেগেক্স (নিয়মিত এক্সপ্রেশন) ব্যবহার করে । এখানে আমি আগে কিছুটা তৈরি করেছি ...

আমি মনে করি এটি সঠিক।
দ্রষ্টব্য: পরীক্ষার সময় আপনার 301 পুনর্নির্দেশগুলি ব্যবহার .htaccess করবেন না । ব্রাউজারটি 301s ক্যাশে করবে বলে পরীক্ষা শেষ না হওয়া পর্যন্ত 302 ব্যবহার করুন। Https://stackoverflow.com/a/9204355/3217306 দেখুন
আপডেট: আমি কিছুটা ভুল হয়ে গিয়েছিলাম, .নিউলাইনগুলি বাদে সমস্ত চরিত্রের সাথে মেলে, তাই হোয়াইটস্পেস অন্তর্ভুক্ত। এছাড়াও, এখানে একটি সহায়ক রেগেক্স চিট শীট রয়েছে
সূত্র:
http://community.sitepoint.com/t/what-does-this-mean-rewritecond-request-filename-fd/2034/2
https://mediatemple.net/community/products/dv/204643270/using-htaccess-rewrite-rules
আপনার ইউআরএল থেকে .html এক্সটেনশানটি সরাতে, আপনি নীচের কোডটি root / htaccess এ ব্যবহার করতে পারেন:
RewriteEngine on
RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC]
RewriteRule ^ /%1 [NC,L,R]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [NC,L]
দ্রষ্টব্য: আপনি যদি অন্য কোনও এক্সটেনশন মুছে ফেলতে চান, উদাহরণস্বরূপ .php এক্সটেনশানটি সরাতে, কেবল উপরের কোডের পিএইচপি দিয়ে সর্বত্র এইচটিএমএল প্রতিস্থাপন করুন ।
অ্যাপাচে অধীনে .htaccess দিয়ে আপনি এটি পুনঃনির্দেশ করতে পারেন:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
ইউআরএল থেকে .html অপসারণ করার জন্য, .html ছাড়া পৃষ্ঠায় লিঙ্ক করুন
<a href="http://www.example.com/page">page</a>
!-f
এটি আপনার পক্ষে কাজ করা উচিত:
#example.com/page will display the contents of example.com/page.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)$ $1.html [L,QSA]
#301 from example.com/page.html to example.com/page
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule ^(.*)\.html$ /$1 [R=301,L]
আপনার কাছে নিশ্চিত হওয়া দরকার Options -MultiViews ।
উপরের কোনওটিই আমার জন্য একটি স্ট্যান্ডার্ড সিপ্যানেল হোস্টে কাজ করেনি।
এটি কাজ করেছে:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]
আপনার জবাবের জন্য ধন্যবাদ। আমি ইতিমধ্যে আমার সমস্যা সমাধান করেছি। ধরুন আমার কাছে http://www.yoursite.com/html এর অধীনে আমার পৃষ্ঠা রয়েছে , নীচের .htaccess বিধি প্রযোজ্য।
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /html/(.*).html\ HTTP/
RewriteRule .* http://localhost/html/%1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /html/(.*)\ HTTP/
RewriteRule .* %1.html [L]
</IfModule>
আমি আমার ইউআরএল সাইট থেকে .html এক্সটেনশন অপসারণের জন্য এই .htacess ব্যবহার করি, দয়া করে এটি সঠিক কোড যাচাই করুন:
RewriteEngine on
RewriteBase /
RewriteCond %{http://www.proofers.co.uk/new} !(\.[^./]+)$
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule (.*) /$1.html [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP
RewriteRule ^([^.]+)\.html$ http://www.proofers.co.uk/new/$1 [R=301,L]
RewriteBase /কিছুটা ছিল । দুর্ভাগ্যক্রমে আমি বুঝতে পারছি না কেন এটি কাজ করেছিল তবে আমি অনুমান করি শিগগিরই শিখব।
যারা ফায়ারবেস হোস্টিং ব্যবহার করছেন তাদের কোনও উত্তর এই পৃষ্ঠায় কাজ করবে না। কারণ আপনি .htaccessফায়ারবেস হোস্টিংয়ে ব্যবহার করতে পারবেন না । আপনাকে ফায়ারবেস.জসন ফাইলটি কনফিগার করতে হবে। "cleanUrls": trueআপনার ফাইলটিতে কেবল লাইন যুক্ত করুন এবং এটি সংরক্ষণ করুন। এটাই.
লাইন যোগ করার পরে ফায়ারবেস.জসনটি এর মতো দেখতে পাবেন:
{
"hosting": {
"public": "public",
"cleanUrls": true,
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
}
}
আপনার ইউআরএল থেকে .html এক্সটেনশানটি সরাতে, আপনি নীচের কোডটি root / htaccess এ ব্যবহার করতে পারেন:
#mode_rerwrite start here
RewriteEngine On
# does not apply to existing directores, meaning that if the folder exists on server then don't change anything and don't run the rule.
RewriteCond %{REQUEST_FILENAME} !-d
#Check for file in directory with .html extension
RewriteCond %{REQUEST_FILENAME}\.html !-f
#Here we actually show the page that has .html extension
RewriteRule ^(.*)$ $1.html [NC,L]
ধন্যবাদ