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

การเขียน URL ใหม่จะจับคู่ URL ที่เข้ามากับ URL ที่ถูกปรับเปลี่ยนเพื่อให้การร้องขอนั้นดำเนินการราวกับว่ามีการทำคำขอดั้งเดิมกับ URL ที่ปรับเปลี่ยนแล้ว สิ่งนี้มักจะใช้เพื่อให้ URL ที่เป็นมิตรกับเครื่องมือค้นหา

2
Nginx https rewrite เปลี่ยน POST เป็น GET
พร็อกซีเซิร์ฟเวอร์ของฉันทำงานบน ip A และนี่คือวิธีที่ผู้ใช้เข้าถึงบริการเว็บของฉัน การกำหนดค่า nginx จะเปลี่ยนเส้นทางไปยังเครื่องเสมือนบน ip B สำหรับพร็อกซีเซิร์ฟเวอร์บน IP A ฉันมีสิ่งนี้ในเว็บไซต์ของฉัน server { listen 443; ssl on; ssl_certificate nginx.pem; ssl_certificate_key nginx.key; client_max_body_size 200M; server_name localhost 127.0.0.1; server_name_in_redirect off; location / { proxy_pass http://10.10.0.59:80; proxy_redirect http://10.10.0.59:80/ /; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server …
17 nginx  rewrite 

2
“ ซ่อน” นามสกุลไฟล์. html โดยใช้การเขียนซ้ำ nginx
ฉันให้บริการเว็บไซต์คงที่ผ่าน nginx และเป้าหมายของฉันคือการแทนที่ URL ที่มีลักษณะดังนี้: http://foo.com/bar.html กับ http://foo.com/bar กุญแจไม่มีการทับ ขณะนี้ฉันกำลังทำสิ่งที่คล้ายกันโดยใช้ชื่อแทนสถานที่ แต่สิ่งนี้น่าเบื่อเพราะต้องใช้บล็อกตำแหน่งสำหรับทุกไฟล์และมันยังผนวกเครื่องหมายทับต่อท้ายเนื่องจาก nginx ดูชื่อแทนว่าเป็นไดเรกทอรี: location / { root /srv/www/foo/public_html; index index.html; } location /bar1 { alias /srv/www/foo/public_html/; index bar1.html; } location /bar2 { alias /srv/www/foo/public_html/; index bar2.html; } และอื่น ๆ ฉันอ่านเอกสารเกี่ยวกับการเขียนซ้ำและฉันไม่สามารถสังเคราะห์สิ่งที่พูดในสิ่งที่ฉันต้องการได้ ฉันไม่ได้เข้ามาจากเบื้องหลังของ Apache nginx เป็นการโจมตีเว็บเซิร์ฟเวอร์ครั้งแรกของฉันดังนั้นฉันแน่ใจว่าฉันขาดอะไรบางอย่างที่ชัดเจนเนื่องจากพื้นหลัง HTTP ของฉันอ่อนแอ ขอบคุณล่วงหน้าสำหรับความช่วยเหลือที่คุณสามารถให้ได้
16 nginx  rewrite 

2
nginx เขียนใหม่สำหรับ URL ที่มีพารามิเตอร์
ฉันมี URL ประเภทนี้: http://www.example.com/?param1=val1&param2=&param3=val3&param4=val4&param5=val5 และฉันต้องการเปลี่ยนเส้นทางไปยังอันนี้: http://www.example.com/newparam/val3/val4 ดังนั้นฉันได้ลองกฎการเขียนใหม่นี้โดยไม่ประสบความสำเร็จ: rewrite "/?param1=val1&param2=&param3=(.+)&param4=(.+)&param5=(.+)" http://www.example.com/newparam/$1/$2 redirect; nginx ไม่สามารถจัดการกับพารามิเตอร์การสืบค้นได้หรือไม่ แก้ไข:ฉันไม่ต้องการเขียนคำร้องทั้งหมด ฉันต้องเขียน URL นั้นใหม่โดยไม่ส่งผลกระทบต่อคนอื่น


1
รักษาการเปลี่ยนเส้นทางใน nginx จากแหล่งภายนอก
ฉันอยู่ในสถานการณ์ที่จะให้โอกาสทางการตลาดแก่ฝ่ายการตลาดของพวกเขาในการรักษาการเปลี่ยนเส้นทางด้วยตนเอง nginx.confจนถึงขณะนี้พวกเขาผ่านข้อมูลไปยังแผนกไอทีและเราเก็บรักษามันสำหรับพวกเขาใน พวกเหล่านี้บางคนค่อนข้างคุ้นเคยกับการเปลี่ยนเส้นทางใน IIS หรือแม้กระทั่งใน Apache แต่ก็ไม่มีตัวเลือกให้พวกเขาเข้าถึงการกำหนดค่า nginx โดยตรง ฉันเห็นว่าไม่มีการสนับสนุน nginx สำหรับ.htaccessไฟล์ที่ฉันสามารถให้การเข้าถึงได้และฉันก็ไม่ต้องการให้สิทธิ์การเขียนเพื่อเข้าถึงไฟล์ conf ที่ nginx รวมอยู่ด้วย ฉันคาดว่าการตลาดของเราจะหยุดการตั้งค่า nginx ของเราภายในไม่กี่ชั่วโมง มีความเป็นไปได้ที่ปลอดภัยโดยไม่ให้พวกเขาเข้าถึงหัวใจของเครื่องถ่วงโหลดของเราหรือไม่?
15 nginx  rewrite 

3
กรณี nginx เขียนตายด้าน
ฉันพยายามทำให้ nginx เปลี่ยนเส้นทางของฉันให้สะอาดที่สุด ฉันเข้าใจ ~ * สำหรับตัวพิมพ์เล็กและตัวพิมพ์เล็ก แต่ฉันสามารถทำให้มันใช้ได้ในตัวอย่างที่ 2 ตัวอย่างที่ 1 rewrite ^/foobar http://www.youtube.com/watch?v=oHg5SJYRHA0 redirect; ตัวอย่างที่ 2 - ใช้งานได้ แต่ไม่มีประสิทธิภาพเท่าบรรทัดด้านบน if ( $request_filename ~* foobar ) { rewrite ^ http://www.youtube.com/watch?v=oHg5SJYRHA0 redirect; } มีวิธีการเปลี่ยนเส้นทางที่ไม่ตอบสนองต่อ case โดยใช้ตัวอย่างที่ 1 โดยไม่ทำให้มันเป็นโคลนหรือไม่? ขอบคุณ
15 nginx  rewrite 

1
วิธีใช้ IIS URL Rewrite ด้วยการบีบอัด gzip
ฉันพยายามสร้างกฎขาออกใน IIS 7.5 บน Windows 2008 R2 บนไซต์ที่มีหน้า HTML แบบคงที่และเปิดใช้งานการบีบอัด หากฉันเปิดใช้งานการบีบอัดรูปแบบใด ๆ (คงที่หรือไดนามิก) ฉันได้รับข้อผิดพลาดนี้: HTTP Error 500.52 - URL Rewrite Module Error. Outbound rewrite rules cannot be applied when the content of the HTTP response is encoded ("gzip"). การปิดการบีบอัดไม่ใช่ตัวเลือกเนื่องจากมีผลกระทบด้านลบอย่างมากที่อาจเกิดขึ้นกับประสิทธิภาพการโหลดหน้าเว็บ ฉันคิดว่าทุกคนที่ใช้กฎการเขียนซ้ำขาออกจะพบข้อผิดพลาดนี้เนื่องจากคุณต้องการเปิดใช้งานการบีบอัดสำหรับเนื้อหาที่เป็นข้อความเสมอ ฉันได้ดูคำแนะนำเพื่อให้ใช้งานได้: /programming/3713804/url-rewrite-outbound-rules-iis7/4363301#4363301 และ http://forums.iis.net/p/1165899/1937454.aspx#1937454 แต่ฉันยังคงได้รับข้อผิดพลาดเดียวกัน มีใครได้รับสิ่งนี้ให้ทำงาน ถ้าเป็นเช่นนั้นได้อย่างไร
13 iis-7.5  rewrite  gzip 

3
Nginx เขียน URL ใหม่เฉพาะในกรณีที่ไฟล์มีอยู่
ฉันต้องเขียนกฎการเขียนซ้ำสำหรับ Nginx ดังนั้นหากผู้ใช้พยายามไปที่ URL รูปภาพเก่า: /images/path/to/image.png และไฟล์ไม่มีอยู่ลองเปลี่ยนเส้นทางไปที่: /website_images/path/to/image.png หากรูปภาพนั้นมีอยู่ใน URL ใหม่มิฉะนั้นจะดำเนินการต่อด้วย 404 เวอร์ชันของ Nginx บนโฮสต์ของเรายังไม่มีไฟล์ try_files
13 nginx  rewrite 

2
Nginx หลายราก
ฉันต้องการเบี่ยงเบนความสนใจไปยังไดเรกทอรีย่อยหนึ่ง ๆ ไปยังตำแหน่งรากอื่น อย่างไร? บล็อกที่มีอยู่ของฉันคือ: server { listen 80; server_name www.domain.com; location / { root /home/me/Documents/site1; index index.html; } location /petproject { root /home/me/pet-Project/website; index index.html; rewrite ^/petproject(.*)$ /$1; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html …

1
nginx rewrite ของฉันกำลังดาวน์โหลดไฟล์ php
ฉันมีกฎการเขียนซ้ำต่อไปนี้ที่ฉันพยายาม: location / { index index.php index.html; rewrite ^/test$ /test.php break; } และฉันก็มี: location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME /home/sites/default$fastcgi_script_name; fastcgi_index index.php; } ไฟล์ php ปกติใช้งานได้ แต่ดูเหมือนว่าการเปลี่ยนเส้นทางของฉันเป็นเพียงการดาวน์โหลดไฟล์ php ที่ฉันเปลี่ยนเส้นทางไปแทนที่จะแยกวิเคราะห์ ฉันกำลังคิดถึงอะไร ฉันได้รับไฟล์ที่โหลดแทนที่จะดาวน์โหลดโดยใส่ fastcgi ในบล็อกตำแหน่งแรก แต่ก็ยังไม่ได้แยกวิเคราะห์เป็น php
12 php  nginx  rewrite 

4
กำหนดค่า IIS 7 Reverse Proxy เพื่อเชื่อมต่อกับ TeamCity Tomcat
เรามีเว็บเซิร์ฟเวอร์IIS 7 ที่กำหนดค่าและต้องการสร้างreverse proxyสำหรับการติดตั้งTeamCityโดยใช้Tomcatบนเครื่องเดียวกัน เว็บไซต์ IIS เซิร์ฟเวอร์เป็นhttps://somesiteและฉันต้องการ TeamCity ที่จะปรากฏเป็นเปลี่ยนเส้นทางไปยังhttps://somesite/teamcityhttp://localhost:portnumber ฉันได้ติดตั้งส่วนขยาย Rewrite IIS URLและApplication Request Routingเพื่อลองและติดตั้ง reverse proxy แต่ไม่สามารถทำงานได้ คำตอบที่ใกล้เคียงที่สุดที่ฉันพบคือคำถาม StackOverflow เก่า: /programming/331755/how-do-i-setup-teamcity-for-public-access-over-https ซึ่งน่าเสียดายที่ไม่มีการทำงานใด ๆ ตัวอย่าง. ฉันค้นหาค่อนข้างน้อย แต่ดูเหมือนจะไม่พบตัวอย่างที่เกี่ยวข้อง ความช่วยเหลือใด ๆ ที่เป็นที่นิยม!

4
กฎ nginx ที่แตกต่างกันตามผู้อ้างอิง
ฉันใช้ WordPress กับ WP Super Cache ฉันต้องการผู้เข้าชมที่มาจาก Google (นั่นรวมถึงผู้อ้างอิงเฉพาะทุกประเทศเช่น google.co.in, google.co.uk และอื่น ๆ ) เพื่อดูเนื้อหาที่ไม่ได้ล้าง มีกฎ nginx ของฉันที่ไม่ทำงานตามที่ฉันต้องการ: server { server_name website.com; location / { root /var/www/html/website.com; index index.php; if ($http_referer ~* (www.google.com|www.google.co) ) { rewrite . /index.php break; } if (-f $request_filename) { break; } set $supercache_file ''; set …

3
เป็นไปได้หรือไม่ที่จะแทนที่เนื้อหาในทุก ๆ หน้าผ่านพร็อกซีคล้ายกับวิธีที่ mod_rewrite ใช้สำหรับ URL?
เป็นไปได้หรือไม่ที่จะแทนที่เนื้อหาในทุก ๆ หน้าผ่านพร็อกซีคล้ายกับวิธีที่ mod_rewrite ใช้สำหรับ URL? เอกสารเกี่ยวกับการทดแทนไม่ชัดเจน ฉันมีบางหน้าฉันย้อนกลับพร็อกซีที่มีเส้นทางที่แน่นอน สิ่งนี้จะทำลายเว็บไซต์ พวกเขาต้องการการแทนที่และเครื่องมือเช่น mod_rewrite ไม่ได้มารับมันเนื่องจากไม่ใช่การร้องขอ URL <VirtualHost *:80> ServerName servername1 ServerAlias servername2 ErrorLog "/var/log/proxy/jpuat_prox_error_log" CustomLog "/var/log/proxy/jpuat_prox_access_log" common RewriteEngine on LogLevel alert rewrite:trace2 RewriteCond %{HTTP_HOST} /uat.site.co.jp$ [NC] RewriteRule ^(.*)$ http://jp.uat.site2uk.co.uk/$1 [P] AddOutputFilterByType SUBSTITUTE text/html Substitute "s|uat.site.co.jp|jp.uat.site2uk.co.uk|i" ProxyRequests Off <Proxy *> Order deny,allow Allow from …

2
Nginx Rewrite แปลง Querystring เป็น Path
ฉันต้องการกฎการเขียนซ้ำง่าย ๆ นี้: /somefolder/mypage.aspx?myid=4343&tab=overview ที่จะเปลี่ยนเส้นทางไปที่: /folder/4343/overview/ ฉันมองหาวิธีแก้ปัญหาและไม่มีใครทำงานได้จริง .. ฉันเหนื่อย: rewrite ^/somefolder/mypage.aspx?myid=(.*)&tab=overview$ /folder/$1/overview permanent; และ rewrite ^/somefolder/mypage\.aspx\?myid=(.*)&tab=overview$ /folder/$1/overview permanent; ผมทำอะไรผิดหรือเปล่า? ฉันได้รับ 404 (กฎที่ง่ายกว่าทำงานได้ดี .. ) ขอบคุณ

2
ป้องกันไม่ให้กฎการเขียนซ้ำ URL จากไดเรกทอรีย่อยใน IIS7
ฉันมีการตั้งค่า URL Rewrite สำหรับ URL ที่สะอาดใน CMS และ web.config ของฉันมีลักษณะดังนี้: <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Clean URLs" stopProcessing="true"> <match url="^([^/]+)/?$" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="?id={R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration> โดยทั่วไปจะเปลี่ยนindex.php?id=somethingเป็นsomethingURL ที่สะอาด ง่ายมากและใช้งานได้ดี ตามปกติใน CMSs …
11 iis  iis-7  rewrite  url  web.config 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.