PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : سرعت پایین <rewrite> برای انتقال دامنه ها



nul
September 3rd, 2016, 21:28
سلام


من یک دامنه com و یک ir دارم و می خوام زمانی که www.mysite.com , www.mysite.ir , mysite.ir زده می شه منتقل بشه به mysite.com کد رو نوشتم به شرح زیر و داخل web.config گذاشتم و کار می کنه و تنها مشکل بزرگی داره یک وقفه ۴ تا ۸ ثانیه ای زمان باز شدن اولیه سایت هست :



<rewrite>
<rules>
<rule name="Redirect to without www" stopProcessing="true">
<match url="(.*)" />
<conditions trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^www.mysite.com$" />
</conditions>
<action type="Redirect"
url="{MapProtocol:{HTTPS}}://mysite.com/{R:1}" />
</rule>
<rule name="Redirection" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{HTTP_HOST}{REQUEST_URI}" pattern="mysite.ir" />
<add input="{HTTP_HOST}{REQUEST_URI}" pattern="www.mysite.ir" />
</conditions>
<action type="Redirect" url="http://mysite.com" />
</rule>

</rules>
<rewriteMaps>
<rewriteMap name="MapProtocol">
<add key="on" value="https" />
<add key="off" value="http" />
</rewriteMap>
</rewriteMaps>
</rewrite>




ولی اگر قانون انتقال www.mysite.com به mysite.com رو حذف کنم همه چیز خوبه و سرعت عادی هست ممنون می شم راهنماییم کنید که مشکلم حل بشه کدی هم که تغییر می دم و مشکل حل می شه به شرح زیر است :



<rewrite>
<rules>
<rule name="Redirection" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{HTTP_HOST}{REQUEST_URI}" pattern="mysite.ir" />
<add input="{HTTP_HOST}{REQUEST_URI}" pattern="www.mysite.ir" />
</conditions>
<action type="Redirect" url="http://mysite.com" />
</rule>

</rules>
</rewrite>




با تشکر

iHSG
September 4th, 2016, 09:22
سلام
من الان IIS ندارم ولی دستور زیر باید بهتر باشه چون به جای قرار دادن هر آدرسی که باید ریدایرکت بشه فقط چک میکنه اگر آدرس سایت mysite.com نبود به mysite.com منتقل میکنه.یعنی سایت شما با هر آدرسی غیر از mysite.com باز بشه به همین mysite.com منتقل میشه :)



<rewrite>
<rule name="Redirect Domains" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^mysite.com$" ignoreCase="true" negate="true" />
</conditions>
<action type="Redirect" url="http://mysite.com/{R:0}" appendQueryString="true" redirectType="Permanent" />
</rule>
</rewrite>


دقت کنید پس از قرار دادن کد در فایرفاکس خودتون یه بار در پنجره History روی آدرس هایی که قبلاً ریدایرکت میشده راست کلیک کنید و گزینه Forget about this site رو بزنید و در کروم هم کل History رو حذف کنید.
همانطور که گفتم الان اصلاً دسترسی به IIS ندارم اگر درست کار نکرد از دوستان IIS دار می خوام لطفاً کد رو درستش کنن.

nul
September 5th, 2016, 11:17
سلام

خیلی ممنون از لطف شما . دقیقا دنبال همچین چیزی هستم که برای سرعت مشکل ایجاد نکنه . اما این کدی که فرمودید رو گذاشتم اما خطای IIS زیر رو می ده

HTTP Error 500.19 - Internal Server Error

ممنون می شم این مورد رو یک بررسی کنید نسخه درستش رو بزارید تا مشکل من حل بشه

خیلی ممنون

iHSG
September 5th, 2016, 12:02
سلام

خیلی ممنون از لطف شما . دقیقا دنبال همچین چیزی هستم که برای سرعت مشکل ایجاد نکنه . اما این کدی که فرمودید رو گذاشتم اما خطای IIS زیر رو می ده

HTTP Error 500.19 - Internal Server Error

ممنون می شم این مورد رو یک بررسی کنید نسخه درستش رو بزارید تا مشکل من حل بشه

خیلی ممنون

همانطور که گفتم اصلاً دسترسی به IIS ندارم که بتونم تست کنم شاید به خاطر کامل نبودن XML اخطار 500 میگیره چون فکر میکردم شما در جای مربوطه کپی میکنید اما اگه کلاً جایگزین کل کد های فایل web.config میکنید می خواین کد زیر رو بذارید ببینید چی میشه:



<?xml version="1.0"?>
<configuration>
<system.webServer>
<rewrite>
<rule name="Redirect Domains" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^mysite.com$" ignoreCase="true" negate="true" />
</conditions>
<action type="Redirect" url="http://mysite.com/{R:0}" appendQueryString="true" redirectType="Permanent" />
</rule>
</rewrite>
</system.webServer>
</configuration>

nul
September 6th, 2016, 09:27
سلام

تشکر از شما . این رو هم کاملا گذاشتم تمامی کد های قبل رو هم پاک کردم باز دقیقا همون پیام خطا رو می ده

iHSG
September 6th, 2016, 10:09
سلام

تشکر از شما . این رو هم کاملا گذاشتم تمامی کد های قبل رو هم پاک کردم باز دقیقا همون پیام خطا رو می ده

همون کد خودتون رو یه تغییراتی که قرمز کردم دادم ببینید بازم اخطار میده:



<rewrite>
<rules>
<rule name="Redirect to without www" stopProcessing="true">
<match url="(.*)" />
<conditions trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^www.mysite.com$" />
</conditions>
<action type="Redirect"
url="{MapProtocol:{HTTPS}}://mysite.com/{R:1}" />
</rule>
<rule name="Redirection" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^mysite.com$" ignoreCase="true" negate="true" />
</conditions>
<action type="Redirect" url="http://mysite.com" redirectType="Permanent" />
</rule>

</rules>
<rewriteMaps>
<rewriteMap name="MapProtocol">
<add key="on" value="https" />
<add key="off" value="http" />
</rewriteMap>
</rewriteMaps>
</rewrite>

nul
September 6th, 2016, 13:14
سلام

تشکر از شما

بله خطا نداد این تغییراتی که شما داده بودید

الان دقیقا چیکار کردید و چقدر فکر می کنید توی سرعت تاثیر داشته باشه ؟

آیا این عملیات رو از طریق iis و اون gui که داره انجام بدیم تاثیری توی سرعت داره ؟

ممنون می شم یکم من رو توی این موارد توجیح کنید

با تشکر

iHSG
September 6th, 2016, 14:33
سلام

تشکر از شما

بله خطا نداد این تغییراتی که شما داده بودید

الان دقیقا چیکار کردید و چقدر فکر می کنید توی سرعت تاثیر داشته باشه ؟

آیا این عملیات رو از طریق iis و اون gui که داره انجام بدیم تاثیری توی سرعت داره ؟

ممنون می شم یکم من رو توی این موارد توجیح کنید

با تشکر

شما باید بگید چه تغییراتی ایجاد شده من که تست نکردم.
اون دو تا بخش فرمز بخش اول negate="true" برعکسش میکنه و باعث میشه که اگر mysite.com نبود اجرا بشه.
بخش ignoreCase="true" بدون حساسیت به کوچک و بززگیش میکنه یعنی مثلاً MySIte.com هم محاسبه میشه.
بخش redirectType="Permanent" هم ریدایرکت رو از نوع 301 انجام میده.