สวัสดี ฉันกำลังพยายามเขียน IIS ใหม่โดยใช้ข้อมูลประจำตัวของผู้จัดการ IIS ที่ผู้ให้บริการโฮสต์ของฉันมอบให้ฉัน ฉันไม่มีประสบการณ์เกี่ยวกับเรื่องนี้มาก่อน และบทความที่ฉันอ่านทางออนไลน์ก็ไม่ค่อยมีประโยชน์เท่าไหร่

นี่คือสถานการณ์: ฉันมีเว็บไซต์ ASP.net MVC 5 ( reallylongmaindomain.comเพื่อความสะดวกในการอ่าน) ที่มีไฟล์อัปโหลดอยู่จริง มีการรักษาความปลอดภัยด้วยใบรับรอง SSL เอกสารที่เราแจกมีโดเมนที่สั้นกว่า (ไม่ใช่โดเมนที่ย่อ URL) ที่เราจะเรียกว่าshortdomain.comซึ่งไม่มีไฟล์ใดๆ อย่างไรก็ตาม หากคุณไปที่shortdomain.comคุณจะได้รับข้อผิดพลาดชื่อโดเมน SSL ที่ไม่ตรงกัน (ERR_CERT_COMMON_NAME_INVALID ต้องแม่นยำ) นี่คือสิ่งที่ฉันต้องหลีกเลี่ยง

ผู้จัดการ IIS เข้ามา ฉันเข้าสู่ระบบสำเร็จและเพิ่ม URL Rewrite นี่คือกฎที่ฉันมี: (http(s)?://)?(www.)?shortdomain.com. สิ่งนี้จัดการhttp/httpsและ/หรือwwwที่ผู้ใช้อาจใส่ในแถบที่อยู่ คุณสมบัติของการกระทำมีการกำหนดให้ "เปลี่ยนเส้นทาง" (ถาวร 301) และการเปลี่ยนเส้นทาง URL ที่ถูกตั้งค่าให้https://reallylongmaindomain.comแต่ฉันยังคงได้รับข้อผิดพลาดใบรับรอง SSL และ URL shortdomain.comในหน้าต่างยังคงเป็น

ฉันแน่ใจว่าฉันขาดสิ่งง่าย ๆ หรือสองอย่าง ฉันจำเป็นต้องเพิ่มกฎลงในไฟล์ Web.Config ด้วยหรือไม่ ฉันรู้สึกว่ากฎของผู้จัดการ IIS เข้ามาแทนที่กฎ Web.Config แก้ไข : เพิ่มกฎใน web.config ของฉันแล้ว นี่คือ:

    <rewrite>
        <rules>
            <rule name="site redirect" stopProcessing="true">
                <match url="(http(s)?://)?(www.)?shortdomain.com" />
                <action type="Redirect" url="https://reallylongmaindomain.com" />
            </rule>
        </rules>
    </rewrite>

ขอบคุณ!

answer

ปรากฎว่านี่คือกฎที่ฉันกำลังมองหา:

<rewrite>
    <rule name="redirect" stopProcessing="true">
        <match url=".*" />
        <conditions>
            <add input="{HTTP_HOST}" pattern="^(.*)?shortdomain.com" />                 
        </conditions>
        <action type="Redirect" url="https://reallylongmaindomain.com/{R:0}" />
    </rule>
</rewrite>

หลังจากใช้กฎนี้แล้ว การไปshortdomain.comยังส่วนhttps://reallylongmaindomain.comต่างๆ

หวังว่านี่จะช่วยคนอื่นได้!