คำถามติดแท็ก redirect

กลไก HTTP หรือ HTML ที่ใช้สำหรับเปลี่ยนเส้นทางเบราว์เซอร์ไปยังตำแหน่งที่มีเนื้อหาจริง

3
ฉันจะเข้าถึงที่อยู่ IPv4 จากเครือข่าย IPv6 เท่านั้นได้อย่างไร
ฉันต้องการเข้าถึงที่อยู่นี้ผ่านที่อยู่ IPv6: http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/ ในเราเตอร์ Freifunk ของเราไม่มี DNS จึงdownloads.openwrt.orgไม่สามารถแก้ไขชื่อได้ เซิร์ฟเวอร์ทั้งหมดในอินเทอร์เน็ตสามารถเข้าถึงได้ผ่านที่อยู่ ipv6 เท่านั้น ตอนนี้เราไม่สามารถเข้าถึงมิเรอร์แพ็คเกจจากภายในเราเตอร์opkg installได้เลย มันจะเป็นทางออกถ้าเราสามารถเพิ่มสิ่งนี้ลงใน config ของเราตัวอย่าง: http://[2001:db8::1]/attitude_adjustment/12.09/ar71xx/generic/packages/ เราเตอร์ของเรากำลังเรียกใช้ OpenWRT และเป็น IPv6 เท่านั้นและฉันต้องการเพิ่มรายการ/etc/hostsเพื่อให้ชื่อโดเมนdownloads.openwrt.orgจะแก้ไขเป็นที่อยู่ IPv6 ที่เหมาะสม เป็นไปได้หรือไม่ที่จะเปลี่ยนเส้นทาง IPv6 ไปยังโดเมน
11 redirect  ipv6 

1
nginx: เขียนทั้งหมดยกเว้นที่เดียว
ตอนนี้ nginx ของฉันกำลังเขียนหลายโดเมนไปยังโดเมนหลักเดียวที่เราใช้อยู่ นี่คือหนึ่งกฎจากการกำหนดค่าของฉัน: server { listen X.X.X.X:80; server_name .exampleblog.org; rewrite ^(.*) http://blog.example.org$1 permanent; } ทุกคำขอไปยัง ** exampleblog.org * จะถูกเปลี่ยนเส้นทางไปยัง blog.example.org ตอนนี้ฉันต้องการwww.exampleblog.org/+และexampleblog.org/+เพื่อเปลี่ยนเส้นทางผู้ใช้ไปยังหน้า Google Plus ของเรา ลองรุ่นต่าง ๆ ของ: server { listen X.X.X.X:80; server_name .exampleblog.org; location /+ { rewrite ^ https://plus.google.com/12345678901234567890/ permanent; } rewrite ^(.*) http://blog.example.org$1 permanent; } รุ่นด้านบนและรุ่นอื่น ๆ เพียงแค่เปลี่ยนเส้นทางไปที่blog.example.org/+ …

4
ข้อผิดพลาดใบรับรอง SSL ใน Captive Portals
สถานการณ์: แขกของโรงแรมพยายามเชื่อมต่ออินเทอร์เน็ตผ่านทางพอร์ทัลที่เป็นเชลยของเรา ปัญหา: Google, Yahoo และไซต์อื่น ๆ อีกมากมายที่เปลี่ยนเส้นทางโฮมเพจทั้งหมดไปยัง HTTPS เพื่อให้แขกได้รับข้อผิดพลาดใบรับรองเมื่อเราเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบของเรา เห็นคุณค่าของ SSL คือการทำสิ่งนี้ แต่สงสัยว่ามีวิธีอื่นในการจัดการกระบวนการยืนยันแขกเพื่อยืนยันตัวตนก่อนที่จะเปิดใช้งานการเข้าถึงผ่านไฟร์วอลล์หรือไม่ มันทำให้แขกประหลาดใจที่ไม่เข้าใจ โดยทั่วไปต้องการสถาปัตยกรรมที่แตกต่างกันสำหรับกระบวนการพอร์ทัล / การพิสูจน์ตัวตนที่เป็นเชลยและสงสัยว่ามีความคิดเห็นใดที่มี ขอบคุณ
10 ssl  redirect 

1
Nginx เปลี่ยนเส้นทางโดเมนย่อยโดเมนเก่าทั้งหมดไปยังโดเมนใหม่
ฉันมีโดเมนที่ยาวมากดังนั้นฉันจึงตัดสินใจเปลี่ยนเป็นโดเมนที่สั้นและเป็นมิตรมากขึ้น แต่เนื่องจากฉันมีโดเมนย่อยจำนวนมาก (อันที่จริงฉันมีโดเมนย่อย) จึงต้องการเก็บโดเมนย่อยไว้ขณะที่เปลี่ยนเฉพาะส่วนโดเมน ดังนั้นฉันทำกฎต่อไปนี้: server { listen 80; server_name ~^(\w+)\.olddomain\.com$; rewrite ^ $scheme://$1.doma.in$request_uri? permanent; } ฉันได้อ่านคำถามอื่น ๆ มากมายซึ่งข้อมูลโค้ดนี้แก้ไขปัญหาได้ แต่สำหรับฉัน Nginx จะเปลี่ยนเส้นทางไปยังเสมอ.domain.inโดยไม่มีโดเมนย่อยใด ๆ ฉันกำลังคิดถึงอะไร ฉันได้ทดสอบ regex เทียบกับ regex101 และตัวอย่างทำงานได้ดี Nginx ดูเหมือนจะไม่สามารถเปลี่ยนเส้นทางได้

4
เปลี่ยนเส้นทางชั่วคราว * ทั้งหมด * คำขอ HTTP / HTTPS ใน IIS ไปยังหน้า“ การบำรุงรักษาเซิร์ฟเวอร์”
เรามีเซิร์ฟเวอร์ IIS ที่โฮสต์หลายร้อยเว็บแอปแยกต่างหากและเซิร์ฟเวอร์ฐานข้อมูลทางกายภาพที่โฮสต์แอปเหล่านี้จะถูกออฟไลน์เพื่อการบำรุงรักษาเป็นระยะเวลาสั้น ๆ (เราคาดว่าจะใช้เวลาน้อยกว่า 15 นาที) ในช่วงเวลานั้นเราต้องการเปลี่ยนเส้นทางการเข้าชมทั้งหมดที่เข้ามาในเว็บไซต์ใด ๆ ไปยังหน้า "เรากำลังอยู่ระหว่างการบำรุงรักษา" ฉันรู้ว่าฉันสามารถทำได้โดยไปที่ทุกเว็บแอปและตั้งค่ากฎการเขียน IIS ซ้ำที่ส่งผู้ใช้ไปยังหน้าอื่นสำหรับคำขอทั้งหมดในแอปนั้น แต่เราจะต้องใช้เวลานานกว่านั้นในการดูแลฐานข้อมูล! ฉันลองสามสิ่งแล้วไม่มีสิ่งใดที่ได้ผล: กฎการเขียนซ้ำสากลของ IIS ฉันค้นหาวิธีง่ายๆในการใช้กฎกับไซต์ทั้งหมดในคราวเดียว - จากนั้นสามารถ "เลิกทำ" กฎนั้นในขั้นตอนที่ไม่เจ็บปวดอย่างเท่าเทียมกัน จนถึงตอนนี้ความพยายามของฉันก็ไม่ได้ผล ฉันลองใส่กฎการเขียนซ้ำนี้ใน web.config ทั่วโลกของฉันที่ W: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ web.config: <configuration> <system.webServer> <rewrite> <rules> <rule name="redirect all requests" stopProcessing="true"> <match …

1
การเปลี่ยนเส้นทางจาก nginx หนึ่งไปยังอีก
ฉันมีเซิร์ฟเวอร์สองตัว (A และ B) กับ NGINX เซิร์ฟเวอร์ A กำลังให้บริการไซต์เก่าและเซิร์ฟเวอร์ B กำลังให้บริการไซต์ใหม่ ฉันอัปเดต DNS ของฉันแล้ว แต่ค่อนข้างช้า: ในสำนักงานของฉันฉันยังคงเห็นไซต์เก่าของฉัน: subdomain.site.com ฉันจะเปลี่ยนเส้นทางคำขอทั้งหมดจากเซิร์ฟเวอร์ A สำหรับโดเมนย่อยนี้ไปยังเซิร์ฟเวอร์ B ได้อย่างไร ตอนนี้พวกเขาทั้งสองได้รับการจัดการกับสิ่งนี้ใน NGINX: server { listen 80; server_name subdomain.site.ru; root /var/www/subdomain/public; passenger_enabled on; }
10 nginx  redirect 

2
Apache เปลี่ยนเส้นทางและตั้งค่าส่วนหัวแคชหรือไม่
การเปลี่ยนเส้นทางใน Apache ทำได้ง่าย (mod_alias): RedirectMatch ^.*$ http://portal.example.com/ การตั้งค่าส่วนหัวแคชนั้นง่ายพอ ๆ กัน: Header set Cache-Control max-age=0 Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT" (ฉันไม่ต้องการแคชนี้) แต่! ดูเหมือนว่าคุณจะไม่สามารถรวมสองอย่างเข้าด้วยกัน การกำหนดค่านี้ส่งผลให้เกิดการเปลี่ยนเส้นทางที่ถูกส่ง แต่ไม่ใช่ส่วนหัว: <VirtualHost *:80> ServerName __default__ Header set Cache-Control max-age=0 Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT" RedirectMatch ^.*$ http://portal.example.com/ </VirtualHost> ตัวอย่างของสิ่งที่เกิดขึ้นจริง: …

2
จะเปลี่ยนเส้นทาง HTTP เป็น HTTPS บน httpd เดียวกันได้อย่างไร
นี่คือสิ่งที่ฉันได้รับ: CentOS 5.4 (32 บิต) ติดตั้ง Apache httpd (รุ่นเซิร์ฟเวอร์: Apache / 2.2.11 (Unix)) mod_rewrite แสดงของขวัญแล้ว คำถาม: วิธีการเปลี่ยนเส้นทางhttp://site.comง่ายๆให้ไปที่https://site.com ไม่ได้ใช้ VirtualHost เป็นตัวกำหนด? PS: พยายามที่จะหาคำตอบในภายหลังเกี่ยวกับ SF แต่ไม่พบทางออกที่ดี ขอบคุณ
10 centos  redirect  httpd 

1
Nginx เปลี่ยนเส้นทางจากโดเมนเก่าไปยังใหม่ด้วย ssl
ฉันกำลังพยายามเปลี่ยนชื่อโดเมนสำหรับเว็บไซต์ของฉันจากhttps://www.myolddomain.se/เป็นhttps://www.mynewdomain.se/ ปัญหาคือสำหรับโดเมนเก่าของฉันฉันบังคับ SSL ในทุกหน้าดังนั้นลิงก์ทั้งหมดใน google และเว็บไซต์อื่น ๆ จะเชื่อมโยงกับ https เมื่อฉันพยายามเยี่ยมชมโดเมนเก่าจากลิงค์ https ฉันได้รับข้อผิดพลาดของใบรับรอง ดังนั้นคำถามของฉันคือฉันจะเปลี่ยนเส้นทางหน้าทั้งหมดที่เชื่อมโยงกับ https ไปยังโดเมนที่ปลอดภัยของ https ใน nginx โดยไม่ได้รับข้อผิดพลาดนี้ได้อย่างไร ฉันทำการค้นคว้าและพบวิธีแก้ปัญหานี้สำหรับการเปลี่ยนเส้นทางหน้าเว็บซึ่งตอนนี้ถูกแทรกในไฟล์ปรับแต่ง แม้ว่าฉันจะยังคงได้รับข้อผิดพลาดใบรับรอง! server { server_name .myolddomain.se; return 301 https://www.mynewdomain.se$request_uri; } แต่ฉันไม่สามารถทำงานได้! หากใครสามารถหาคำตอบได้ฉันก็จะขอบคุณมาก

1
การเปลี่ยนเส้นทางอย่างง่ายของ Nginx ของผลิตภัณฑ์จากหมวดหมู่เก่าถึงใหม่
ฉันกำลังเปลี่ยนเส้นทางของผลิตภัณฑ์จากหมวดหมู่เก่าไปยังหมวดหมู่ใหม่ ฉันจัดการเพื่อให้ทำงานกับกฎต่อไปนี้: rewrite ^/old-category/(.*) /new-category/$1; แต่ฉันต้องการที่จะรู้ว่าเมื่อไหร่ฉันควรใช้ "end line" sign $ และอะไรคือความแตกต่างกับมันหรือไม่มีมันในกรณีของฉัน ตัวอย่างเช่น: rewrite ^/old-category/(.*)$ /new-category/$1; นอกจากนี้ฉันต้องการเปลี่ยนเส้นทางผู้ใช้หากพวกเขาเพียงแค่เขียนชื่อหมวดหมู่เก่า (ไม่มีผลิตภัณฑ์) ฉันควรสร้างกฎใหม่เฉพาะสำหรับการเปลี่ยนเส้นทางหมวดหมู่หรือฉันสามารถแก้ไขกฎปัจจุบันด้านบนเพื่อทำงานในทั้งสองกรณี ขอบคุณสำหรับคำตอบล่วงหน้า

1
HSTS และ double redirect
ฉันจัดการเว็บไซต์เล็ก ๆ น้อย ๆ ในสภาพแวดล้อม LAMP ของโฮสติ้งที่ใช้ร่วมกัน: สิ่งนี้โดยทั่วไปหมายถึงสิ่งเดียวที่ฉันสามารถแก้ไขได้คือไฟล์ htaccess ฉันต้องการเพิ่มการสนับสนุน HSTS (และฉันทำได้) แต่เมื่อฉันทดสอบเว็บไซต์ของฉันที่นี่เพื่อรับสิทธิ์โหลดล่วงหน้า HSTS ฉันได้รับข้อผิดพลาดต่อไปนี้: ข้อผิดพลาด: HTTP เปลี่ยนเส้นทางไปที่ www ก่อน http://example(HTTP) ควรเปลี่ยนเส้นทางไปที่https://example(HTTPS) ทันทีก่อนที่จะเพิ่มโดเมนย่อย www ในตอนนี้การเปลี่ยนเส้นทางครั้งแรกคือhttps://www.example.การเปลี่ยนเส้นทางเพิ่มเติมเป็นสิ่งจำเป็นเพื่อให้แน่ใจว่าเบราว์เซอร์ที่รองรับ HSTS จะบันทึกรายการ HSTS สำหรับโดเมนระดับบนสุดไม่ใช่เฉพาะโดเมนย่อย ดังนั้นฉันคิดว่าฉันควรเปลี่ยนเส้นทางผู้ใช้ด้วยวิธีนี้: http://example (นี่คือสิ่งที่ผู้ใช้ป้อนในแถบที่อยู่ของเบราว์เซอร์) https://example (เราเปลี่ยนเส้นทางเขาไปยังเว็บไซต์รุ่น HTTPS) https://www.example (เราเปลี่ยนเส้นทางเขาอีกครั้งเพื่อ www โดเมนย่อย) การเปลี่ยนเส้นทางปัจจุบันของฉันทำได้ดังนี้: RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] ฉันพยายามเพิ่มการเปลี่ยนเส้นทางก่อนบรรทัดสุดท้ายด้วยวิธีนี้: RewriteRule ^(.*)$ …

3
ความแตกต่างระหว่าง“ การเปลี่ยนเส้นทางถาวร” กับ mod_rewrite RewriteRule
นี่คือเซิร์ฟเวอร์ Apache httpd 2.2 เราต้องการให้ HTTPS เข้าถึงเซิร์ฟเวอร์นี้เพื่อเข้ารหัส เมื่อลูกค้าเว็บเยี่ยมชมเว็บไซต์ของฉันที่http://www.example.org/ $ foo (พอร์ต 80) ฉันต้องการเปลี่ยนเส้นทางคำขอไปยังเว็บไซต์ที่เข้ารหัส HTTPS ที่https://www.example.org/ $ foo ดูเหมือนจะมีสองวิธีทั่วไปในการทำเช่นนี้: วิธีแรกใช้คำสั่ง ' เปลี่ยนเส้นทาง ' จาก mod_alias: <VirtualHost *:80> Redirect permanent / https://www.example.org/ </VirtualHost> วิธีที่สองใช้ mod_rewrite: <VirtualHost *:80> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </VirtualHost> อะไรคือความแตกต่างระหว่าง "การเปลี่ยนเส้นทางถาวร" และ mod_rewrite stanza เป็นคนหนึ่งที่ดีกว่าคนอื่น …

2
ฉันสามารถนามแฝงคำขอไดเรกทอรีทั้งหมดไปยังไฟล์เดียวใน nginx ได้หรือไม่
ฉันพยายามหาวิธีนำคำขอทั้งหมดไปยังไดเรกทอรีเฉพาะและคืนค่าสตริง json โดยไม่เปลี่ยนเส้นทางใน nginx ตัวอย่าง: curl -i http://example.com/api/call1/ ผลลัพธ์ที่คาดหวัง: HTTP/1.1 200 OK Accept-Ranges: bytes Content-Type: application/json Date: Fri, 13 Apr 2012 23:48:21 GMT Last-Modified: Fri, 13 Apr 2012 22:58:56 GMT Server: nginx X-UA-Compatible: IE=Edge,chrome=1 Content-Length: 38 Connection: keep-alive {"logout": true} นี่คือสิ่งที่ฉันมีจนถึงตอนนี้ใน nginx conf: location ~ ^/api/(.*)$ { index /api_logout.json; alias …


1
วิธีที่ดีที่สุดในการเปลี่ยนเส้นทาง 57,000 URL ใน nginx คืออะไร
ฉันวางแผนที่จะทำการเปลี่ยนเส้นทางจำนวนมากใน nginx ด้วยไฟล์การจับคู่เช่นในตัวอย่างด้านล่าง แต่เพิ่งค้นพบว่าฉันต้องเปลี่ยนเส้นทางประมาณ 57,000 URL วางไว้ในไฟล์กำหนดค่าเช่นนี้เป็นวิธีที่ดีที่สุดในการทำหรือมีวิธีที่ดีกว่า map $request_uri $redirect_uri { /old-path-1 /new-path-1; /old-path-2 /new-path-2; /old-path-3 /new-path-3; } การเปลี่ยนเส้นทางส่วนใหญ่สำหรับเครื่องมือค้นหา หลังจากพวกเขาจัดทำดัชนีเว็บไซต์อีกครั้งฉันคิดว่า URL จำนวนมากจะไม่ได้รับความนิยม ฉันส่วนใหญ่กังวลเกี่ยวกับปัญหาที่อาจเกิดขึ้นจากการสร้างไฟล์กำหนดค่าที่มีหลายบรรทัดในนั้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.