Score:0

เว็บไซต์ IIS ในไดเรกทอรีย่อย => คำขอแหล่งที่มา HTML เพื่อรูท "/" ชี้ไปที่เว็บไซต์เริ่มต้นแทนที่จะเป็นไดเรกทอรีย่อย

ธง ph

IIS ของเราโฮสต์เว็บไซต์ของเราเอง แต่เมื่อเร็ว ๆ นี้ เราได้รับมอบหมายให้โฮสต์เว็บไซต์บุคคลที่สามซึ่งสร้างโดยใช้ Laravel ในไดเร็กทอรีย่อย

กำลังโหลดเว็บไซต์ แต่ทรัพยากรส่วนใหญ่ เช่น ไฟล์ CSS และ JS ไม่ได้ถูกโหลด (404) เนื่องจากวิธีที่เว็บไซต์บุคคลที่สามร้องขอเป็นทรัพยากร เช่น:

<script source="/js/site.js"></script>

/js/site.js แปลเป็น https://defaultwebsite/js/site.js ซึ่งไม่มีอยู่จริง ฉันต้องการ /js/site.js แปลเป็น https://defaultwebsite/laravel/public/js/site.js.

เป็นไปได้ใน IIS 10 หรือไม่

นี่คือภาพร่างของไดเร็กทอรีทรี:

+ เว็บไซต์เริ่มต้น
| + ลาราเวล
| | + สาธารณะ
| | | + จส
| | | | -site.js
| | | -index.php
| + จส
| | - ourownjs.js
| -index.php

เรามีกฎการเขียนซ้ำ 2 กฎที่ตั้งค่าไว้เพื่อจัดการกับการเปลี่ยนเส้นทาง https://defaultwebsite/lavarel ถึง https://defaultwebsite/laravel/public แบบนี้:

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Imported Rule 1-1" stopProcessing="true">
                <match url="^" ignoreCase="false" />
                <conditions logicalGrouping="MatchAll">
                    <add input="{HTTP_AUTHORIZATION}" ignoreCase="false" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                    <add input="{URL}" pattern="(.+)/$" ignoreCase="false" />
                </conditions>
                <action type="Redirect" url="{C:1}" redirectType="Permanent" />
            </rule>
            <rule name="Imported Rule 2-1" stopProcessing="true">
                <match url="^" ignoreCase="false" />
                <conditions logicalGrouping="MatchAll">
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                </conditions>
                <action type="Rewrite" url="index.php" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

อัปเดต ฉันเพิ่งเพิ่มกฎนี้ไปที่รูท (เว็บไซต์เริ่มต้น) แต่ดูเหมือนจะไม่เป็นไปตามกฎนี้เมื่อไซต์ laravel ร้องขอทรัพยากร แม้ว่าฉันจะเห็นว่ารูปแบบ HTTP_REFERER นั้นถูกต้อง

    <rewrite>
        <rewriteMaps>
            <rewriteMap name="Root" />
        </rewriteMaps>
        <rules>
            <rule name="Rewrite Root => Laravel" stopProcessing="true">
                <match url="(img|js|css)?(.*)" />
                <conditions>
                    <add input="{HTTP_REFERER}" pattern="^https://www.defaultsite.be/laravel(.*)" />
                </conditions>
                <action type="Rewrite" url="laravel/public/{R:1}{R:2}" appendQueryString="true" logRewrittenUrl="true" />
            </rule>
        </rules>
    </rewrite>
Score:0
ธง ph

ฉันเองก็ไม่เข้าใจมันอย่างถ่องแท้ IIS จะไม่เป็นเพื่อนของฉัน :)

มันเริ่มทำงานเมื่อฉันเปลี่ยนกฎเพื่อเปลี่ยนเส้นทางแทนการเขียนใหม่:

<rules>
    <rule name="Rewrite Root => Laravel" stopProcessing="true">
        <match url="(img|js|css)?(.*)" />
        <conditions>
            <add input="{HTTP_REFERER}" pattern="laravel/.*" />
            <!-- <add input="laravel\public\{R:1}{R:2}" matchType="IsFile" /> -->
            
        </conditions>
        <action type="Redirect" url="/laravel/{R:0}" appendQueryString="true" logRewrittenUrl="false" redirectType="Permanent" />
    </rule>
</rules>

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา