ترفندهای RewriteCond و RewriteRule برای .htaccess

سرور وب آپاچی یک ماژول به نام "mod_rewrite" دارد. این اجازه می دهد تا برای هدایت و تغییر URL درخواست شده. در زیر برخی از محبوب ترین تغییرات و تغییر مسیرها می توانند اجرا شوند. این دستورات را در یک فایل «.htaccess» در ریشه سند وب سایت قرار دهید. به ترتیب محبوبیت:

# 1 هر زیر دامنه وب را تغییر دهید

با یا بدون www؟ این یک سوال سخت نیست چون شما می توانید بر روی هر دو پاسخ دهید و یکی را هدایت کنید. این قطعه، که می تواند با یک قبلی ترکیب شود، تمام درخواست های غیر WWW را به زیر دامنه www هدایت می کند:

<IfModule mod_rewrite.c> RewriteEngine در RewriteCond٪ {HTTP_HOST}! ^ www \. [NC] RewriteRule ^ (. *) $ http: //www.٪ {HTTP_HOST} / $ 1 [R = 301، L] </ IfModule>

داشتن وب سایت شما در زیر دامنه "www" ممکن است هنگام برخورد با CDN یا سرویس های امنیتی سودمند باشد.

# 2 همه چیز را به HTTPS هدایت کنید

به سختی دلیلی وجود ندارد وبسایت خود را بیش از SSL (HTTPS) اجرا کنید. همچنین بسیار مهم است که به HTTP و HTTPS پاسخ دهید. این قطعه ترافیک غیر HTTPS را به HTTPS هدایت می کند:

<IfModule mod_rewrite.c> RewriteEngine در RewriteCond٪ {HTTPS} در [NC] RewriteRule ^ (. *) $ https: //٪ {HTTP_HOST} / $ 1 [R = 301، L] </ IfModule>

مهم است که یک URL واقعی (کانونی) را برای دلایل جستجوگر انتخاب کنید.

# 3 فایل پی اچ پی برای رسیدگی به تمام درخواست های غیر استاتیک

همچنین به عنوان الگوی کنترل جلو شناخته می شود. این مکانیزم پایه ای برای هر چارچوب وب است. در PHP آن به شما اجازه می دهد مسیر واقعی درخواست شده در متغیر جهانی $ _SERVER ['REQUEST_URI'] را بخوانید. بازنویسی به نظر می رسد:

<IfModule mod_rewrite.c> RewriteEngine در RewriteCond٪ {REQUEST_FILENAME}! -d RewriteCond٪ {REQUEST_FILENAME}! -f RewriteRule ^ (. *) $ index.php [QSA، L] </ IfModule>

توجه داشته باشید که فایل PHP برای فایل های موجود (محتوای استاتیک) حذف شده است.

# 4 پارامتر GET را به قسمت URL بازنویسی کنید

اگر آدرس اینترنتی دارید که باید با «GET / orders؟ id = 13» تماس بگیرید و می خواهید آن را به عنوان اگر «GET / orders / 13» نامیده می شود پاسخ دهید، ممکن است از موارد زیر استفاده کنید:

<IfModule mod_rewrite.c> RewriteEngine در RewriteCond٪ {REQUEST_URI} ^ / دستورات [NC] RewriteCond٪ {QUERY_STRING} ^ id = ([0-9] +) $ [NC] RewriteRule ^ (. *) $ / $ 1 / ٪ 1 \؟ [R، L] </ IfModule>

این به ویژه مفید است هنگام مهاجرت طرح های URL و نیاز به پشتیبانی میراث. توجه کنید که علامت سوال فرار در انتهای «RewriteRule» پارامترهای GET را حذف می کند.

 

پاسخ دهید

این سایت از Akismet برای کاهش هرزنامه استفاده می کند. بدانید که چگونه نظر شما پردازش می شود.

GTranslate Your license is inactive or expired, please subscribe again!