تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 1 از 1

نام تاپيک: باز نویسی مسیر، URL rewrite یا mod_rewrite

  1. #1
    در آغاز فعالیت
    تاريخ عضويت
    Jun 2012
    پست ها
    5

    پيش فرض باز نویسی مسیر، URL rewrite یا mod_rewrite

    بازنویسی مسیر، یکی از کارامد‌ترین روشهای بالا بردن رتبه سایت در موتور‌های جستجوست. بسیاری از صاحبان سایت‌ها، تنها به نام دامنه‌ سایتشان دقت می‌کنند، در صورتیکه مسیرهای درون هر سایت نیز به همان اندازه در به خاطر سپردن سایت، در رتبه سایت و در فهم بهتر محتوا مهم است.با بازنویسی مسیر، URL Rewrite، می‌توانید مسیرهایی خوانا، دارای کلمات کلیدی، و مناسب برای موتورهای جستجو بسازید.بازنویسی مسیر چیست؟

    بازنویسی مسیر (URL rewrite) به نام‌های fancy URLs یا SEF – Search Engine Friendly نیز خوانده می‌شود. اغلب سایت‌های داینامیک، با متغیرهایی در URL، اطلاعات لازم برای سرور‌های را منتقل می‌کنند، که به این متغیرها Query String می‌گوییم.http://www.webiran.co/news.php?title=what-is-URL-rewriteاین اطلاعات برای سرورهاست و اشاره به یک محتوای خاص دارد، پس هر محتوا دارای یک مسیر واحد می‌باشد. مشکل اصلی این نوع مسیر دهی، سردرگمی کاربران و موتور‌های جستجو در هنگام اشاره کردن به این صفحات است، به یاد آوردن آنها سخت است، برای کاربران نامفهوم هستند، نوشتن این مسیرها بر روی بروشورها زیبا نیست، خواندن آنها پشت تلفن خیلی سخت است، و موتورهای جستجو اطلاعات اندکی از این مسیر‌ها بدست می‌آورند.«بازنویسی مسیر» باعث می‌شود که تمام این موارد تغییر کنند. به جای مسیر بالا شما می‌توانید مسیری مثلhttp://www.webiran.co/news/what-is-URL-rewriteداشته باشید که یادآوری و خوانایی آن بهتر و راحتتر است و موتورهای جستجو در تشخیص آنها راحتتر عمل می‌کنند. «بازنویسی مسیر» می‌تواند محتوا را از مسیر جدا کند، مسیری مثل [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] می‌تواند به هر صفحه‌ای که دلخواه شماست اشاره داشته باشد و لزوما دیگر به محتوایی به نام about-us اشاره نمی‌کند. مسیرها بهSHORTCUTها یا لینک‌های سمبولیکی تبدیل می‌شوند که می‌توانند به هرجایی اشاره کنند.ابزار و محیط‌های لازم

    «موتور بازنویسی» توسط وب سرور در Web application framework اجرا می‌شود که کارش تغییر نحوه نمایش مسیرها می‌باشد. این موتور‌ها در Apache و IIS به ترتیب با نام‌های Mod_rewrite و ISAPI_Rewrite مشخص می‌شوند (Rewrite engine, 2012). ISAPI_Rewrite در IIS به طور استاندارد نصب نمی شود ولی به صورت برنامه جانبی (add-on) قابل نصب می‌باشد که کارایی بسیار نزدیک به mod_rewrite دارد. در اینجا ابتدا به بررسی روش mod_rewrite می‌پردازیم و در انتها روش ISAPI_Rewrite را مورد بررسی قرار می‌دهیم. اگر از سیستم عامل لینوکس استفاده می‌کنیم mod_rewrite معمولا همراه با Apache نصب می‌شود ولی اگر از سیستم عامل Windows یا Macintosh استفاده می‌کنید می‌توانید به ترتیب از نرم افزار WAMP یا XAMP برای نصب Apache استفاده کنید، که به طور استاندارد از این ماژول استفاده نمی‌کند.نصب در WAMP

    برای نصب ماژول mod_rewrite در WAMP 2.0، از مسیر زیر می‌توانید استفاده کنید.WAMP -> Apache -> Apache modules -> rewrite_moduleاصول اولیه

    با یک مثال ساده شروع می‌کنیم. مسیر استانداردی به شکل زیر داریم که مربوط به یک صفحه PHP می‌باشد.http://www.webiran.co/article.phpمی‌خواهیم به شکل خوانای زیر آن را بازنویسی کنیم.http://www.webiran.co/Articles/برای این منظور، لازم است که به سرور بگوییم که مسیر /Articles/URL-Rewrite را به فایل article.php انتقال دهید. به این نکته همیشه توجه کنید که در هنگام نوشتن لینک‌ها در برنامه نویسی سایت، لازم است که لینک‌ها را به روش دوم بنویسیم، و تنها بازنویسی مسیر، مرورگرها را به لینک اول منتقل می‌کند بدون اینکه مسیر در آدرس‌بار تغییر کند. برای این منظور فایل متنی با پسوند “.htaccess” از نوع ASCII می‌سازیم. نام این فایل باید دقیقا همین، بدون هیچ پسوند و پیشوندی (مانند .htaccess.txt یا rules.htaccess) باشد. این فایل که یک فایل خاص برای سرور‌هاست باید در ریشه سایت ساخته شود.این فایل، به دو منظور ساخته می‌شود، اولا Apache موتور بازنویسی را راه اندازی کند و دوما، قوانین بازنویسی را به Apache معرفی کند. محتوایاین فایل در این مثال به شکل زیر خواهد بود.RewriteEngine On # Turn on the rewriting engine
    RewriteRule ^Articles/?$ article.php [NC,L] # Handle requests for "Articles"
    خط اول این عبارت، موتور بازنویسی را راه‌اندازی می‌کند و عبارت بعد از # توضیحات مربوط به هر خط می‌باشد. خط دوم قابل تقسیم به پنج قسمت زیر می‌باشد.
    RewriteRule یک قاعده را آغاز می‌کند.
    ^Articles/?$ یک الگو طبق اصول Regular Expression است، Apache مسیرهای رسیده را با این الگو مقایسه می‌کند و اگر مسیر دارای این الگو باشد، آنگاه فایل article.php را در مرورگر نمایش می‌دهد.
    article.php مسیر جایگزین می‌باشد. اگر الگو در مسیر های رسیده باشد، این فایل در مروگر نمایش داده می‌شود.
    [NC,L] پرچمی‌است که به Apache نحوی اجرای قواعد را نمایش می‌دهد، در اینجا از دو پرچم NC و L استفاده شده است که NC حساسیت به حروف بزرگ و کوچک در مسیر‌ها را حذف می‌کند، و L مشخص‌ می‌کند که اگر این قاعده بر روی مسیر اجرا شد، دیگر قاعده دیگری بر روی این مسیر اجرا نشود.
    #Handle requests for “Articles” عبارت‌های بعد از # توضیحات هر خط می‌باشد.
    الگو‌های و جایگزین‌ها

    قاعده بالا تنها یک مسیر را به یک فایل منتقل می‌کند، اما قدرت واقعی موتورهای بازنویسی در تعیین گروهی از مسیر‌هاست که طبق الگوی خاصی همیشه نوشته می‌شوند. به مثال زیر توجه کنید، شما مسیری به شکل زیر دارید؛http://www.webiran.co/article.php?id=1و می‌خواهید که به شکل زیر بازنویسی کنید.http://www.webiran.co/Articles/1/عدد بعد از id، همیشه عدد است و می‌خواهیم که به شکل دوم بازنویسی شود، از این رو، سرور Apache به الگوی Regular Expression مناسب را برای یافتن اعداد در مسیر نیازمند است تا عدد یافته شده را در متغیر id قرار دهد و مسیر را به فایل article.php با متغیر id برابر با عدد یافته شده منتقل کند. الگوی زیر برای یافتن اعداد در استفاده می‌شود.[0-9]+در Regular Expression، براکت‌ها نشان دهنده مجموعه‌ای از کارکتر‌هاست، و 0-9 نشان دهنده همه اعداد است. علامت جمع در آخر باعث می‌شود تمام اعداد حداقل یک رقمی تا چند رقمی در مسیر‌ها جستجو شوند. به زبان ساده، این الگوی برای یافتن اعداد یک یا چند رقمی می‌باشد. حال که توانستیم عدد مورد نظر را بیابیم باید آن را در متغیری که بعد از id قرار دارد جای دهیم تا مسیر به درستی با تمام متغیرهایش منتقل شود. قاعده زیر را مشاهده کنید.RewriteRule ^Articles/([0-9]+)/?$ article.php?id=$1 [NC,L]اولین نکته در این قاعده، عبارت داخل پارانتر ([0-9]+) می‌باشد که باعث می شود بتوانیم به این مقدار بعدا مراجعه کنیم و در حافظه داشته باشیم تا اینکه در متغیر $1 آن را جایگذاری کنیم. $1 به سرور Apache می‌گوید که عبارتی که در قسمت پارانتر اول (عدد یک نشان‌دهنده این ترتیب است) پیدا شده است را در این قسمت جای دهد. قاعده بالا تمام مسیرهایی به شکل http://www.webiran.co/Article/{number} را به http://www.webiran.co/article.php?id={number} منتقل می‌کند.در این مرحله لازم است که اطلاعات دقیقتری درباره Regular Expression داشته باشیم تا با پیدا کردن این الگوها در هر مسیر، مسیرها را به فایل‌های جایگزین مناسب منتقل کنیم.Regular Expressions

    خوشبختانه الگوهایی که در مسیرها در بیشتر مواقع استفاده می‌‌شود، پیچیدگی‌های زیادی ندارد و با اطلاعات اندکی از نحوه الگو نویسی می‌توان به هدف مورد نظر دست یافت. برای آزمون درستی الگوهای خود می‌توانید از ابزار آنلاین Regular Expression Testing Tool استفاده کنید.در هنگام نوشتن مسیرها باید دقت کرد که از کارکترهایی که در Regular Expression معنی خاصی دارند استفاده نشود. یکی از معمول‌ترین مثال‌ها، استفاده از نقطه در مسیر‌هاست که در Regular Expression به معنی هر کاراکتری می باشد، که در هنگامی جستجو برای الگوها باعث بروز مشکل می‌شود. به عنوان مثال قاعده پایین تنها عبارت rss.xml را پیدا نمی‌کند، بلکه تمامی عبارت‌های نظیر rsslxml، و rss-xml را شامل خواهد شد.RewriteRule ^rss.xml$ rss.php [NC,L] # Change feed URLبرای حل این مشکل بهتر است که از کاراکتر خاص \ برای در نظر نگرفتن نقطه به عنوان یک کاراکتر خاص به شکل زیر استفاده کنیم.RewriteRule ^rss\.xml$ rss.php [NC,L] # Change feed URLاین الگو به دنبال rss.xml هایی می گردد که در آن نقطه دیگر معنی خاصی ندارد.در اینجا بعضی از کارکترهای خاص Regular Expression را که بیشترین استفاده را در بازنویسی مسیر دارند توضیح می‌دهیم.
    . هر کارکتری (تک)
    * هر الگویی قبل ستاره می‌تواند صفر یا چند رقم باشد.
    + هر الگویی قبل جمع می‌تواند یک یا چند رقم باشد.
    {} اندازه حداقل و حداکثر را در خود دارد.
    ? مشخص کننده صفر یا یک کاراکتری است که بعد از علامت سئوال آمد است.
    ! در ابتدای الگو، به معنی NOT الگو می‌باشد.
    ^ شروع یک خط را مشخص می‌کند، قبل از آن مهم نیست.
    [^ ] به معنی معکوس مجموعه است.
    [] مجموعه
    [-] در یک مجموعه به معنی فاصله دو حد مجموعه می‌باشد.
    () گروه، گروه قابل ارجاع
    | یا
    \ در نظر نگرفتن یک کاراکتر
    برای یافتن اطلاعات بیشتر می‌توانید به [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] مراجعه کنید.به مثال کاربردی‌تری دقت کنید، می‌خواهیم الگوی Articles/URL-Rewrite/ را پیدا کنیم و آن به فایل article.php?name=URL-Rewrite منتقل کنیم، قاعده زیر را داریم.RewriteRule ^Articles/([A-Za-z0-9-]+)/?$ articles.php?name=$1 [NC,L]قاعده بالا الگویی را نشان می‌دهد که با ^ آغاز شده است و عبارت‌های قبل آن مهم نیستند. عبارت داخل پارانتز‌ها در حافظه نگهداری خواهد شد و قابل ارجاع هستند. عبارت داخل براکت‌ها مجموعه‌ای را نشان می‌دهد که به دنبال آن هستیم که شامل تمام حروف بزرگ A-Z و حروف کوچک a-z و اعداد 0-9 و علامت خط تیره (که بعد از 9 آمده است) می‌باشد. بعد از مجموعه علامت مثبت نشان می‌دهد که از این مجموعه کلمات حداقل یک حرفی تا چند حرفی قابل یافتن است. با یافتن این چنین الگویی در مسیر، Apache آن را حفظ کرده و در قسمت $1 قرار می‌دهد و صفحه article.php را با متغیر name={Found String} مورد استفاده قرار می‌دهد. جدول زیر کمک زیادی به یاد آوری اصول ذکر شده می‌کند.پرچم‌ها

    پرچم‌ها که در انتهای هر قاعده آورده می‌شود به Apache می‌گوید که با هر قاعده چطور رفتار کند. الگو‌ها و جایگذین‌ها می‌تواند به حروف بزرگ و کوچک حساس باشند، یک قاعده می‌تواند آغازگر زنجیره‌ای از قواعد دیگر باشد و یا اینکه در هنگام اجرا شدن یک قاعده، قواعد دیگر اجرا نشوند. پرچم‌ها را در براکت می‌نویسیم و برای نوشتن چند پرچم برای یک قاعده از کاما در میان پرچم‌ها استفاده می‌کنیم. برخی از پرچم‌ها را در اینجا آورده‌ایم.
    C زنجیر شده به قاعده بعدی
    CO=cookie کوکی خاصی را می‌سازد
    E=var:value متغیر با مقدار مشخصی را می‌سازد
    F خطای 403 (غیر قابل مشاهده) را برای کاربر می‌فرستد
    G صفحه منتقل شده است، حذف شده است.
    H=handler یک نقطه دسترسی تعریف می‌کند
    L اگر این قاعده اجرا شود، تنها قاعده‌‌ای است که اجرا می‌شود.
    N قاعده بعدی هم اجرا شود.
    NC حساس به حروف بزرگ و کوچک نباشد
    R موقتا به صفحه جدید منتقل شده و مسیر در آدرس‌بار مرورگر تغییر نمی‌کند.
    R=301 دائما به صفحه جدید منتقل شده و مسیر در ادرس بار مرورگر به آدرس جدید تغییر می‌کند.
    S=x Xتا قاعده بعدی را در نظر نگیر
    T=mime-type Mime-type خاصی را به هاست اضافه کند
    جابه‌جا کردن فایل

    هنگامی که فایلی را از مسیر قبلی خود جابه‌جا می‌کنید، نمی‌توانید تمام لینک‌هایی را که به این صفحه داده شده است را تغییر دهید. از این رو لازم است که لینک‌های قدیمی را به صفحات جدید منتقل کنید، یا در هنگام آپلود سایت لازم است که مسیرهای رسیده را موقتا به یک مسیر دیگر راهنمایی کنید تا اینکه مراحل آپلود کامل شود. در هنگامیکه می‌خواهید مسیری را موقتا تغییر دهید بطوریکه در آدرس‌بار مرورگر کاربران آدرس قدیمی نمایش داده شود ولی محتوای آدرس جدید به آنها نمایش داده شود، از پرچم R استفاده می‌کنیم که به مروگر کد 302 را بازمی‌گرداند که نشان دهنده تغییر نکردن مسیر آدرس‌بار است ولی صفحه به یک آدرس جدید منتقل می‌شود. در مثال زیر تمام لینک‌هایی که دارای کلمه article باشند به سایت جدیدی منتقل می‌شوند، ولی این باعث نمی‌شود که کاربر مسیر جدید را در آدرس‌بار خود مشاهده کند.RewriteRule ^article/?$ [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] [R, NC,L] #Temporary Moveولی در بعضی مواقع می‌خواهید که آدرس جدید در آدرس‌بار نمایش داده شود، در این صورت از پرچم R=301 که کد 301 را به مرورگر‌ها می‌فرستد استفاده می‌کنیم، تا اینکه مسیر در آدرس‌بار تغییر کند.RewriteRule ^article/?$ [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] [R=301, NC,L] #Temporary Moveاین دو روش در هنگام جابه‌جایی کامل یک سایت از یک دامنه به دامنه دیگر و در هنگام آپلود دوباره سایت، بسیار مفید هستند.شروط

    در بازنویسی مسیر می‌توان از شروط نیز با استفاده از متغیرهای سرور استفاده کرد. شروط هنگامی که چند دومین را به یک دومین متصل می‌کنیم بسیار کارآمد است، بدین نحو که تمام درخواست‌هایی را که به یک دامین می‌رسد به دامین جدید بفرستیم. به عنوان مثال می‌خواهیم دامین [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] را به [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] منتقل کند، ولی اگر آدرس شامل [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] باشد باید قسمت بعد از دامنه (article/) را نیز در انتهای مسیر جدید اضافه کنیم.RewriteCond %{HTTP_HOST} !^webiran\.co$ [NC]
    RewriteRule (.*) http://www.webiran.co/$1 [L,R=301]
    در خط اول این مثال عبارت RewriteCond آغاز یک شرط را به Apache اعلان می‌کند که متغیر سرور (%{HTTP_HOST}) را با الگوی (!^www.webiran\.co$) مقایسه می‌کند و اگر شرط درست باشد خط بعدی اجرا خواهد شد. در این مثال %{HTTP_HOST} برابر با [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] خواهد بود و الگوی !^www.webiran\.co$ در آن جستجو خواهد شد، به علامت! که شرط را معکوس می کند دقت کنید. این شرط معادل است با اینکه اگر مسیری که به سایت [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] می‌آید دارایwebiran.co نباشد، آن را طبق قاعده بعدی به مسیر [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] با تمام حروف بعد از دامنه (.*) منتقل می‌کنیم. پرچم‌ها در شرط‌ها نیز مانند قاعده‌ها عمل می‌کنند.استثناها و موارد خاص شروط

    بازنویسی مسیر علاوه بر روش مقایسه با الگوها دارای روش‌های دیگری برای نوشتن شرط‌هاست. مواردی خاص به روش زیر هستند.
    <Pattern مقایسه می‌کند که جمله اول کوچکتر از الگو باشد
    >Pattern مقایسه می‌کند که جمله اول بزرکتر از الگو باشد
    =Pattern مقایسه می‌کند که جمله اول با الگو برابر باشد.
    -d مقایسه می‌کند که جمله اول دایرکتوری موجود در سایت باشد.
    -f مقایسه می‌کند که جمله اول فایلی موجود در سایت باشد.
    -s مقایسه می‌کند که جمله اول فایلی با حجم بالای صفر در سایت باشد.
    -l مقایسه می‌کند که جمله اول، یک لیک بازنویسی شده (از نوع لینک‌های سمبولیک) باشد.
    -F مقایسه می‌کند که جمله اول، فایلی معتبر در سایت و قابل دسترسی باشد.
    -U مقایسه می‌کند که جمله اول، یک مسیر معتبر و قابل دسترسی در سایت باشد.
    فرض کنید که می‌خواهیم در هنگام نبود فایل یا دایرکتور مورد نظر کاربر در وب سایت پیغام خطایی نمایش داده شود. برای این منظور لازم است که شرطی را بررسی کنیم که در آن نام فایل و دایرکتوری مورد نظر کاربر آزموده شود و در صورت درستی شرط پیغام خطا نمایش داده شود. بدین منظور ابتدا صفحه خطای مورد نظر را می سازیم که در اینجا به نام notfound.php نام گذاری شده است، عبارت زیر شرط مورد نظر را بررسی و مسیر را به سمت فایل مورد نظر بازنویسی می‌کند.RewriteCond %{REQUEST_FILENAME} !-f [NC]
    RewriteCond %{REQUEST_FILENAME} !-d [NC]
    RewriteRule . /http://www.webiran.co/notfound.php [L,R=301]
    مثال بالا به پنج قسمت قابل تقسیم است.
    • RewriteCond – عبارت شرطی را شروع می‌کند.
    • {REQUEST_FILENAME}% - متغیر سرور است که نام فایلی را که از Apache درخواست شده است ارائه می‌کند.
    • !-f – یک استثنا است که مقایسه می‌کند، آیا جمله اول یک فایل معتبر در سایت نیست؟ درصورتی که فایلی با این نام در سایت موجود نباشد خط دوم اجرا می‌شود.
    • !-d – یک استثنا است که مقایسه می‌کند، ایا جمله اول همین شرط یک دایرکتوری معتر در سایت نیست؟ درصورتیکه دایرکتوری با این نام در سایت موجود نباشد خط سوم اجرا می شود.
    • خط سوم یک منتقل کننده ساده است که سایت را به آدرس [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] منتقل می‌کند.

    همانطور که مشاهده می‌کند در هنگامیکه دو شرط بعد از هم نوشته شوند، دو شرط با یکدیگر AND می‌شوند. برای اینکه حالت OR در شروط را داشته باشیم باید در قسمت پرچم اولین شرط، کلمهOR را به شکل زیر بنویسیم.RewriteCond %{REQUEST_FILENAME} !-f [NC,OR]
    RewriteCond %{REQUEST_FILENAME} !-d [NC]
    RewriteRule . /http://www.webiran.co/notfound.php [L,R=301]
    در این صورت شرط اول و دوم با یکدیگر OR می شوند.متغیرهای محیطی (متغیرهای سرور)

    تا اینجا از متغیرهای محیطی‌ای به نام متغیرهای سرور نام برده‌ایم که نمونه‌هایی از آنها را به صورت %{REQUEST_FILENAME} مشاهده کردید. این متغیرها موارد خاصی هستند که می‌توانید از آنها در شروط بازنویسی مسیرها استفاده کنید. این متغیرها همیشه مابین کروشه‌های عبارت %{} قرار می‌گیرند و تنها می‌توانند یکی از موارد زیر باشند.
    • HTTP Headers
      • HTTP_USER_AGENT
      • HTTP_REFERER
      • HTTP_COOKIE
      • HTTP_FORWARDED
      • HTTP_HOST
      • HTTP_PROXY_CONNECTION
      • HTTP_ACCEPT

    • Connection Variables
      • REMOTE_ADDR
      • REMOTE_HOST
      • REMOTE_USER
      • REMOTE_IDENT
      • REQUEST_METHOD
      • SCRIPT_FILENAME
      • PATH_INFO
      • QUERY_STRING
      • AUTH_TYPE

    • Server Variables
      • DOCUMENT_ROOT
      • SERVER_ADMIN
      • SERVER_NAME
      • SERVER_ADDR
      • SERVER_PORT
      • SERVER_PROTOCOL
      • SERVER_SOFTWARE

    • Dates and Times
      • TIME_YEAR
      • TIME_MON
      • TIME_DAY
      • TIME_HOUR
      • TIME_MIN
      • TIME_SEC
      • TIME_WDAY

    • TIME
      • Special Items
      • API_VERSION
      • THE_REQUEST
      • REQUEST_URI
      • REQUEST_FILENAME
      • IS_SUBREQ

    کار با چند جایگذین

    در سایت‌های پیچیده‌تر لازم است تا چند متغیر در مسیر منتقل شوند. برای مثال مسیری اطلاعات محصولی را در یک گروه به شکل زیر منتقل می کند.http://www.webiran.co/products.php?cat=Book&pro=BoofeKoorبرای بازنویسی این مسیر لازم است که دو متغیر جایگذین داشته باشیم، می‌خواهیم مسیر بالا را به شکل زیر بازنویسی کنیم.http://www.webrian.co/Products/Book/BoofeKoor/برای این منظور از قاعده زیر استفاده می‌کنیم.RewriteRul ^products/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ products.php?cat=$1&pro=$2 [L,NC]ISAPI_Rewrite

    این برنامه جانبی برای IIS، معادل mod_rewrite در Apache می‌باشد. در هنگامی‌ که بخواهیم فایل‌های PHP را بر روی IIS اجرا کنید، برای استفاده از بازنویسی مسیرها، به این موتور به جای موتور mod_rewrite در Apache نیازمندید. برای اطلاعات بیشتر می‌توانید به فروم ISAPI_Rewrite مرجعه کنید. قواعد این موتور در فایلی به نام httpd.ini نوشته می شود و خطاهای اجرا شده نیز به طور معمول در فایل httpd.arse.errors جای می‌گیرد.

    مقاله‌های قدیمی سایتم را به اینجا منتقل خواهم کرد، برای مشاهده مقالات جدیدتر می‌توانید به سایت [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] مراجعه کنید.
    Last edited by webiran.co; 04-06-2012 at 10:19.

  2. این کاربر از webiran.co بخاطر این مطلب مفید تشکر کرده است


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

برچسب های این موضوع

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •