آشنایی با فایل htaccess و ریرایت کردن (Rewriting) مسیرها در php :
فایل htaccess یک فایل تنظیمات است که در سرور وب قرار داده می شود و قابلیت تغییر دادن تنظیمات سرور را فراهم می کند. این فایل از قالبی خاص برخوردار است و می تواند دستوراتی را که برای سرور اعمال می شوند، شامل کند. یکی از دستوراتی که می توان در فایل htaccess قرار داد، دستور Rewrite است که به ما این امکان را می دهد تا مسیرهای URL را به صورت سفارشی تغییر دهیم.
یکی از کاربردهای اصلی ریرایت کردن مسیرها در php، پنهان کردن پارامترهای متغیر است. به عنوان مثال، فرض کنید یک وبسایت داریم که دارای صفحات مختلفی است که نمایش دادن محصولات مختلف را بر عهده دارند. معمولاً از روش Query String برای ارسال پارامترهای متغیر استفاده می شود. به عنوان مثال، آدرس زیر برای نمایش محصول با شناسه ۱۰ استفاده می شود:
http://example.com/product.php?id=10
با استفاده از ریرایت کردن مسیرها می توانیم این آدرس را به صورت سفارشی تغییر دهیم. به جای استفاده از Query String، می توانیم از یک آدرس کوتاه تر و قابل فهم تر استفاده کنیم. مثلاً می توانیم از آدرس زیر استفاده کنیم:
http://example.com/product/10
برای این کار، باید یک قانون ریرایت در فایل htaccess قرار دهیم. این قانون می گوید که هرگاه آدرسی با الگوی /product/ و یک عدد پس از آن شروع شود، به صورت دستوری به فایل product.php ارجاع دهد. به این ترتیب، سرور به جای فراخوانی آدرس اصلی، آدرس ریدایرکت شده را فراخوانی می کند و پارامتر مربوطه را به آن ارسال می کند.
در اینجا عبارتی به نام RewriteRule برای تعریف قوانین ریرایت استفاده می شود. این عبارت شامل سه بخش اصلی است: الگوی متناسب با آدرس ورودی، آدرس مقصد و دستورات مربوط به این قانون. در مورد مثال فوق، الگوی متناسب با آدرس ورودی /product/([0-9]+) است که به معنی هر آدرسی است که با /product/ شروع شده و یک عدد پس از آن دارد. آدرس مقصد در اینجا برابر با /product.php است و دستورات مربوط به این قانون نیز شامل ارسال پارامتر ها و قرار دادن علامت L است که به سرور می گوید که دیگر قوانین ریرایت را بررسی نکند.
با استفاده از ریرایت کردن مسیرها و قوانین مربوطه در فایل htaccess، می توانیم آدرس های سفارشی و بدون پارامترهای متغیر بسازیم که قابلیت خوانایی و بهینه سازی برای موتورهای جستجو را دارند. همچنین، این قابلیت به ما اجازه می دهد تا آدرس های موجود را تغییر داده و به آدرس های جدید ریدایرکت کنیم بدون اینکه لینک های قبلی دچار خطا شوند.