php HTTP redirect ไม่ทำงานบน Azure App Service
ฉันกำลังพยายามเปลี่ยนเส้นทางผู้ใช้ของฉันไปยังเว็บไซต์หนึ่งเมื่อพวกเขาไปที่จุดสิ้นสุดของฉัน https://url-shortner-in.azurewebsites.net/openfb จะชี้ไปที่ google.com
เซิร์ฟเวอร์ของฉันโฮสต์บน Azure App Service พร้อม Slim Framework v4 โดยใช้ REST API
นี่คือการเรียกร้องให้เปลี่ยนเส้นทางผู้ใช้
return $response
->withHeader('Location', 'http://www.google.com')
->withStatus(302);
ทำงานได้ดีบนเซิร์ฟเวอร์ WAMP ในพื้นที่ของฉัน ฉันกำลังเปลี่ยนเส้นทางไปยัง Google
แต่หลังจากอัปโหลดบน Azure App Service แล้วโค้ดจะไม่ทำงาน ฉันเห็นหน้าว่างหลังการเปลี่ยนเส้นทาง URL ยังคงเหมือนเดิม (URL เว็บไซต์ของฉันไม่ใช่ของ Google)
Azure มีการกำหนดค่าผิดพลาดหรือไม่
. htaccess ของฉัน
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
คำตอบ
ฉันขอแนะนำให้คุณเลือกแพลตฟอร์ม windows เมื่อสร้างเว็บแอพ
คุณสามารถลองสร้างweb.configไฟล์ภายใต้โฟลเดอร์ wwwroot หากไม่มีอยู่ หากคุณสามารถค้นหาไฟล์นี้ได้เมื่อทำให้เว็บแอปของคุณใช้งานได้คุณจะต้องแก้ไขไฟล์นั้น
เนื้อหาเฉพาะที่จะเพิ่มหรือแก้ไขคือสิ่งที่RewriterConfigต้องเพิ่มลงใน web.config
รูปแบบมีดังนี้:
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler,URLRewriter" />
</configSections>
......
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>^default/([0-9]+)/([_0-9a-z-]+)</LookFor>
<SendTo>11.aspx?id={R:1}</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
สำหรับรายละเอียดเพิ่มเติมคุณสามารถดูสองโพสต์ต่อไปนี้:
Azure Web App Angular ไม่เปลี่ยนเส้นทางไปยัง www
DNN UrlRewrite (“ DotNetNuke.HttpModules.UrlRewriteModule, DotNetNuke.HttpModules”) ไม่เรียกใช้กฎการเขียนซ้ำแบบกำหนดเองบน web.config
ขั้นตอนที่ 1 : เปิดใช้งาน Apache .htaccess
โดยค่าเริ่มต้นไฟล์. htaccess จะไม่เปิดใช้งาน
1.เปิดไฟล์คอนฟิกูเรชันโฮสต์เริ่มต้นโดยป้อนคำสั่งต่อไปนี้ในเทอร์มินัล:
sudo nano /etc/apache2/sites-available/default
2.<Directory /var/www>ค้นหาส่วนที่ระบุว่า ในส่วนนั้นเปลี่ยนAllowOverride Noneรายการเป็นall:
AllowOverride All
บันทึกไฟล์และออก
3.จากนั้นเริ่มบริการ Apache ใหม่:
sudo systemctl apache2 restart