چهارشنبه, 29 مرداد 1393
علی رضاجو

انتقال صفحات با htaccess

Htaccess مخفف "HyperText Access" است که به فارسی می توان آن را به "دسترسی توسط ابرمتن" ترجمه کرد. در حالت عادی اگر بخواهید تغییراتی در وب سرور ایجاد کنید باید به فایل های تنظیمات وب سرور اصلی دسترسی داشته باشید، اما این فایل راه انجام بعضی کارها و تغییرات در وب سرور شما را بدون نیاز به فایل های اصلی ایجاد می کند. فایل htaccess توسط وب سرورهای Apache و Litespeed  استفاده می شود.
فایل htaccess یک فایل کوچک متنی و پرقدرت است که به طور عمومی در کنار فایل index.php  و index.html قرار می گیرد، البته می توان از این فایل در هر پوشه نیز به طور جداگانه استفاده کرد. این فایل بسیاری از جنبه های نحوه نمایش صفحات وب را کنترل می کند مانند انتقال کاربر به آدرس دیگر(redirect)، فعال کردن فشرده سازی فایل ها توسط سرور(gzip)، باز نویسی آدرس ها(rewrite urls)، فعال سازی کش مرورگر(leverage browser cache) و بسیاری دیگر را تنها با اضافه کردن چند خط کد به این فایل کوچک می توان انجام داد.

تنظیمات htaccess


انتقال از آدرس قدیم به آدرس جدید
Redirect to another page

Redirect /old-index.html http://uxdesigner.ir/blog/coding.html

 

انتقال از آدرس به سایت دیگر
Redirect to another website

Redirect 301 / http://www.uxdesigner.ir

 

انتقال از یک آدرس به یک پوشه داخلی
Redirect index to subdirectory

Redirect /foldername/filename.html http://www.uxdesigner.ir/foldername2/filename.html

 

انتقال آدرس فایل به آدرس جدید
Redirect filepaths

Redirect /foldername/filename.html http://www. uxdesigner.ir /foldername2/filename.html

 

تغییر پسوند فایل
To change file extention

RedirectMatch 301 (.*)\.html$ http://www.example.com$1.php

 

تنظیم صفحه پیش فرض سایت
Specifying folder default page

DirectoryIndex index.php

 

انتقال آدرس با www به آدرس بدون www
Redirect www to non-www

تبدیل آدرس www.uxdesigner.ir به آدرس uxdesigner.ir

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.mynewwebsite\.com$ [NC]
RewriteRule ^(.*)$ http://mynewwebsite.com/$1 [L,R=301]

 

انتقال آدرس بدون www به آدرس با www
Redirect non-www to www

تبدیل آدرس uxdesigner.ir به آدرس www.uxdesigner.ir

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.mynewwebsite\.com$ [NC]
RewriteRule ^(.*)$ http://www.mynewwebsite.com/$1 [L,R=301]

 

تنظیم تمامی صفحات سایت به صفحه "در دست تغییرات"
Give 307 'Site Under Maintenance' Header on all webpage requests

در مواردی که شما قصد آفلاین سازی تمامی صفحات سایت جهت اعمال تغییرات را در سایت دارید می توانید از طریق تنظیمات زیر تمامی صفحات خود را مدیریت کنید.

RewriteEngine On
RewriteBase /
# Before using this htaccess, you have to change this digits to match your
# own IP address: This will keep you with access to the site. as long as
# your IP doesn't change: http://whatismyip.com
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123$
# The last 2 lines take the site offline. the basically say if: page request is
# NOT 307.php, show 307.php but only once. Stops it from looping endlessly.
RewriteCond %{REQUEST_URI} !^/307\.php$
# The browser gets this bit, so you need the full website address.
RewriteRule ^(.*)$ http://www.yoursite.com/307.php [R=307,L]

علی رضاجو

مشاور و طراح آزاد رابط و تجربه کاربری؛
با بیش از 10 سال سابقه فعالیت و همکاری با شهرداری تهران، روزنامه همشهری، روزنامه فرصت امروز، جی اس ام و مجموعه سایت های پیک برتر

مهدی 14964726990ق ظ_شنبهق ظ+0430E+04301خردادE_خرداد+0430Rخردادق ظ+0430
سلام وقت بخیر
من یک سایت با نام m.com دارم که ظاهر خوبی ندارد ولی کلی سرویس را دارد و ادمین خیلی خوبی دارد و یک سایت m.ir دارم که ظاهر خوبی دارد من فقط میخواهم صفحه اول m.com به صفحه اول m.ir ریداریرکت گردد . لطفا دراینخصوص راهنمایی بفرمایید .
با سپاس - مقدم

You have no rights to post comments