-
September 3rd, 2016, 21:28
#1
عضو جدید
سرعت پایین <rewrite> برای انتقال دامنه ها
سلام
من یک دامنه 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>
با تشکر
-
-
September 3rd, 2016 21:28
# ADS
-
September 4th, 2016, 09:22
#2
پاسخ : سرعت پایین <rewrite> برای انتقال دامنه ها
سلام
من الان 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 دار می خوام لطفاً کد رو درستش کنن.
-
تعداد تشکر ها از iHSG به دلیل پست مفید
-
September 5th, 2016, 11:17
#3
عضو جدید
پاسخ : سرعت پایین <rewrite> برای انتقال دامنه ها
سلام
خیلی ممنون از لطف شما . دقیقا دنبال همچین چیزی هستم که برای سرعت مشکل ایجاد نکنه . اما این کدی که فرمودید رو گذاشتم اما خطای IIS زیر رو می ده
HTTP Error 500.19 - Internal Server Error
ممنون می شم این مورد رو یک بررسی کنید نسخه درستش رو بزارید تا مشکل من حل بشه
خیلی ممنون
-
-
September 5th, 2016, 12:02
#4
پاسخ : سرعت پایین <rewrite> برای انتقال دامنه ها

نوشته اصلی توسط
nul
سلام
خیلی ممنون از لطف شما . دقیقا دنبال همچین چیزی هستم که برای سرعت مشکل ایجاد نکنه . اما این کدی که فرمودید رو گذاشتم اما خطای 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>
-
تعداد تشکر ها از iHSG به دلیل پست مفید
-
September 6th, 2016, 09:27
#5
عضو جدید
پاسخ : سرعت پایین <rewrite> برای انتقال دامنه ها
سلام
تشکر از شما . این رو هم کاملا گذاشتم تمامی کد های قبل رو هم پاک کردم باز دقیقا همون پیام خطا رو می ده
-
-
September 6th, 2016, 10:09
#6
پاسخ : سرعت پایین <rewrite> برای انتقال دامنه ها

نوشته اصلی توسط
nul
سلام
تشکر از شما . این رو هم کاملا گذاشتم تمامی کد های قبل رو هم پاک کردم باز دقیقا همون پیام خطا رو می ده
همون کد خودتون رو یه تغییراتی که قرمز کردم دادم ببینید بازم اخطار میده:
کد:
<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>
-
-
September 6th, 2016, 13:14
#7
عضو جدید
پاسخ : سرعت پایین <rewrite> برای انتقال دامنه ها
سلام
تشکر از شما
بله خطا نداد این تغییراتی که شما داده بودید
الان دقیقا چیکار کردید و چقدر فکر می کنید توی سرعت تاثیر داشته باشه ؟
آیا این عملیات رو از طریق iis و اون gui که داره انجام بدیم تاثیری توی سرعت داره ؟
ممنون می شم یکم من رو توی این موارد توجیح کنید
با تشکر
-
-
September 6th, 2016, 14:33
#8
پاسخ : سرعت پایین <rewrite> برای انتقال دامنه ها

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