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

ไฟล์การกำหนดค่าระดับไดเรกทอรีส่วนใหญ่พบบนเว็บเซิร์ฟเวอร์ Apache

1
ตัวเลือกทั้งหมดต้องเริ่มต้นด้วย + หรือ - หรือไม่มีตัวเลือกใดอาจ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับข้อบกพร่องของเซิร์ฟเวอร์ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันมีบรรทัดนี้ในไฟล์. htaccess Options +SymLinksIfOwnerMatch ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch ExecCGI Includes IncludesNOEXEC SymLinksIfOwnerMatch Indexes -Indexes ฉันได้รับข้อผิดพลาดต่อไปนี้: Either all Options must start with + or …

2
SSL redirect บนอินสแตนซ์ EC2 ที่อยู่เบื้องหลัง SSL กำลังยกเลิก load balancer
ฉันกำลังพยายามเปลี่ยนเส้นทาง URL ทั้งหมดไปยัง https ในเว็บแอปพลิเคชัน ฉันมีอินสแตนซ์ ec2 อยู่เบื้องหลังตัวโหลดบาลานซ์แบบยืดหยุ่น SSL ถูกยกเลิกบน load balancer ความพยายามในการเปลี่ยนเส้นทางท้ายที่สุดทำให้ฉันคุ้นเคย 'หน้านี้กำลังขอในลักษณะที่จะไม่สมบูรณ์' ตัวโหลดบาลานซ์ส่งต่อ 443 และ 80 ไปยังพอร์ต 80 บนอินสแตนซ์ นี่คือสิ่งที่ฉันมีใน. htaccess ของฉัน RewriteCond %{X-FORWARDED-PROTO} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ไม่มีใครมีความคิดวิธีการทำสิ่งนี้? ขอบคุณมาก

5
วิธีแก้ปัญหาข้อความแสดงข้อผิดพลาด“ ExpiresActive ไม่อนุญาตที่นี่” ในไฟล์. htaccess
ฉันกำลังพยายามเพิ่มส่วนหัว Expires ให้กับการตอบกลับ HTTP ของเว็บไซต์ที่ฉันกำลังทำงานอยู่ วิธีเดียวที่ฉันจะควบคุมเซิร์ฟเวอร์ Apache 1.3 คือการแก้ไขไฟล์. htaccess ของฉัน ฉันพยายามเพิ่มรหัสเช่นต่อไปนี้เพื่อเปิดใช้งานส่วนหัว Expires: <IfModule mod_expires.c> ExpiresActive on ExpiresDefault "access plus 1 hour" </IfModule> อย่างไรก็ตามผลลัพธ์นี้เกิดข้อผิดพลาดภายในของเซิร์ฟเวอร์พร้อมกับข้อความแสดงข้อผิดพลาดต่อไปนี้ในบันทึก: ExpiresActive ไม่อนุญาตที่นี่ ฉันอาจไม่สามารถใช้วิธีอื่นในการควบคุมแคชได้เนื่องจาก mod_headers ไม่ได้เปิดใช้งาน มีวิธีใดบ้างที่ฉันยังสามารถเปิดใช้งานส่วนหัว Expires โดยใช้ mod_expires ผ่านคำสั่งบางอย่างในไฟล์. htaccess อัปเดต ฉันจำได้ว่ากำลังอ่านการตั้งค่า Override ใน httpd.conf ซึ่งอาจเกี่ยวข้องกับสิ่งนั้น มีวิธีการตรวจสอบว่าเป็นปัญหาจริง ๆ หรือไม่ ถ้าเป็นเช่นนั้นมีวิธีแก้ปัญหาบางอย่างในการควบคุมส่วนหัวแคชสำหรับเว็บไซต์ของฉันหรือไม่?

4
ทำไมการเปลี่ยนเส้นทาง. htaccess จึงทำงานใน http แต่ไม่ใช่กับ https
ฉันมีไฟล์. htaccess ที่ใช้งานได้ดีบนเว็บไซต์ http รุ่น แต่ไม่ใช่เมื่อฉันไปที่ https ทำไม? RewriteEngine on #This is so if the file exists then use the file RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^ %{REQUEST_FILENAME} [L] #These conditions check if a file or folder exists just for reference #RewriteCond %{REQUEST_FILENAME} !-f #RewriteCond %{REQUEST_FILENAME} !-d #if someone adds ".php" …

2
แยกแถวยาวในไฟล์. htaccess
ฉันกำลังตั้งค่าส่วนหัวของ Content-Security-Policy ในไฟล์. htaccess ของฉันและมันได้กลายเป็นบรรทัดเดียวที่ยาวมากซึ่งเป็นเรื่องที่ต้องจัดการ มีวิธีในการแยกบรรทัดนี้เป็นวัสดุย่อยที่จัดการได้มากขึ้นหรือไม่? เป็นตัวอย่างเล็ก ๆ น้อย ๆ ว่าฉันกำลังตั้งส่วนหัวเช่น Header set Content-Security-Policy "deafult-src http://domainA.com; script-src http://domainB.com" ฉันสามารถ (โดยไม่มีปัญหาในการทำลายที่เห็นได้ชัด) ทำกรณีเฉพาะของฉันด้วยสิ่งที่ชอบ Header append Content-Security-Policy "default-src http://domainA.com;" Header append Content-Security-Policy "script-src http://domainB.com" แต่นั่นจะเป็นการใส่เครื่องหมายจุลภาคลงในสายอักขระดังนั้นฉันก็ยังสงสัยว่าถ้ามีคำตอบที่ดีกว่าที่สามารถใช้ได้โดยทั่วไปโดยไม่ต้องเพิ่มตัวอักษรเพิ่มเติมลงในการตอบกลับ สิ่งที่จะเหมาะคือถ้ามีตัวละครเรียงต่อกันที่ฉันสามารถใช้เพื่อแยกสตริงออกเป็นส่วนเล็ก ๆ เช่น Header set Content-Security-Policy "default-src http://domainA.com;" \" script-src http://domainB.com" หรือ Header set Content-Security-Policy "default-src http://domainA.com;"^ " …

3
วิธีเปลี่ยนเส้นทางจาก HTTPS ไปยัง HTTP ก่อนเกิดข้อผิดพลาดที่เซิร์ฟเวอร์
ฉันเคยใช้งานเว็บไซต์ที่มีใบรับรอง SSL แต่หยุดใช้ใบรับรอง SSL ปัญหาคือลิงก์ภายนอกส่วนใหญ่ไปยังเว็บไซต์ใช้คำนำหน้า https: // ฉันได้ลอง https: // ไปยัง http: // การเปลี่ยนเส้นทางในไฟล์. htaccess: RewriteEngine On RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} แต่ดูเหมือนว่าที่อื่นได้ชี้ให้เห็นว่าเซิร์ฟเวอร์พยายามดึงใบรับรองก่อนที่จะเปิดใช้งานการเปลี่ยนเส้นทาง ดังนั้นข้อผิดพลาดจะปรากฏขึ้นก่อนการเปลี่ยนเส้นทางจะทำได้สำเร็จ ข้อผิดพลาดเป็นคำเตือนว่าใบรับรองหมดอายุหรือถ้าฉันลบคำขอลงนามใบรับรองแล้วข้อผิดพลาดที่ SSL ได้รับบันทึกที่เกินความยาวสูงสุดที่อนุญาต มีวิธีใดบ้างที่จะอนุญาตให้ลิงค์ขาเข้าถูกเปลี่ยนเส้นทางอย่างเหมาะสม?

2
ไม่สามารถหากฎ htaccess
ฉันมีสิ่งนี้ใน htaccess ของฉัน แต่ไม่สามารถหาได้ว่ามันมีไว้เพื่ออะไร เนื่องจากลักษณะของกฎการค้นหาจึงไม่ได้ช่วยอะไรเช่นกัน RewriteCond %{REQUEST_URI} !(/$|\.) RewriteRule (.*) %{REQUEST_URI}/ [R=301] ใครช่วยอธิบายหน่อยได้ไหม?

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 ^(.*)$ …

1
เพิ่มค่าของ LimitRequestFieldSize ใน Apache
ฉันได้พัฒนาแอพพลิเคชั่นที่ใช้ปลั๊กอิน jQuery ซึ่งจะใช้ข้อมูลคุกกี้มากเกินไป ปัญหาคือหลังจากทุกคำขอ 15-20 ฉันจะแสดงข้อความข้อผิดพลาดนี้โดยเบราว์เซอร์: เบราว์เซอร์ของคุณส่งคำขอว่าเซิร์ฟเวอร์นี้ไม่เข้าใจ ขนาดของฟิลด์ส่วนหัวคำขอเกินขีด จำกัด เซิร์ฟเวอร์ หลังจากขุดไปเรื่อย ๆ ฉันรู้ว่า Apache เริ่มต้นมีค่าเริ่มต้นของความยาวคุกกี้ 8190 bytesบางรอบ ในการเพิ่มขีด จำกัด ฉันต้องเปลี่ยน / เพิ่มคำสั่งด้านล่างเพื่อกำหนดค่าของฉัน LimitRequestFieldSize 16380 ฉันพยายามเพิ่มรหัสข้างต้นใน .htaccessและรีสตาร์ทเซิร์ฟเวอร์ apache ด้วย แต่ไม่ได้ผล ฉันสับสนที่จะวางสายนี้; มันอยู่ในhttpd.confไฟล์หรือไม่? หรือมีวิธีใดที่ฉันสามารถเพิ่มขีด จำกัด โดยใช้.htaccessไฟล์ได้? ฉันจะขอบคุณถ้ามีคนชี้ให้ฉันไปในทิศทางที่ถูกต้อง และ BTW ฉันใช้ OSX 10.7.4 โดยใช้ MAMP

3
ฉันจะปิดบัง Wordpress ของฉันติดตั้งผ่าน htaccess ได้อย่างไร
(ฉันทราบว่าไม่แนะนำให้ใช้การรักษาความปลอดภัยที่คลุมเครือ) ฉันพยายามซ่อนความจริงที่ว่าฉันใช้ Wordpress โพสต์นี้มีประโยชน์ แต่จะเน้นเฉพาะเนื้อหา (เรียงลำดับ) เท่านั้น ฉันสนใจที่จะมีสิ่งต่อไปนี้เกิดขึ้น: ผู้ใช้พยายามเข้าถึง url ใด ๆwp*ที่เป็นซับสตริงผ่านเบราว์เซอร์ ผลลัพธ์:เปลี่ยนเส้นทางไปที่หน้า 404 ผู้ใช้บล็อก / http://example.com/blogin/ผู้ดูแลระบบรู้เพื่อที่จะเข้าสู่ระบบที่พวกเขาควรจะไป ผล: การเปลี่ยนเส้นทาง Apache http://example.com/wp-admin/ให้พวกเขา หากผู้ใช้พยายามเข้าถึงโดยตรงwp-adminจากเบราว์เซอร์ผู้ใช้จะถูกส่งไปที่ # 1 ผลลัพธ์:เปลี่ยนเส้นทางไปที่หน้า 404 สิ่งที่ฉันทำไปแล้ว ฉันสังเกตเห็นว่าการติดตั้งเริ่มต้นของ WordPress ที่ฉันสามารถเข้าถึงwp*ไฟล์ใด ๆในไดเรกทอรีราก (ญาติ) ของการติดตั้ง WP wp-settings.phpมีปัญหาโดยเฉพาะเพราะให้ข้อมูลเกี่ยวกับการตั้งค่าของฉัน หากผู้ใช้เข้าถึงมันก็จะพ่นข้อผิดพลาด PHP และเปิดเผยส่วนหนึ่งของโครงสร้างไดเรกทอรี ฉันแก้ไขไฟล์ php.ini เพื่อdisplay_errorsปิด ตอนนี้การเข้าถึงhttp://example.com/wp-settngs.phpจะแสดงหน้าว่าง สิ่งนี้ในตัวมันเองไม่เหมาะเพราะมันเปิดเผยว่าwp-settings.phpมีอยู่จริง ในความเป็นจริงการเข้าถึงwp*ไฟล์ต่าง ๆทั้งหมดเป็นไปได้ (มีผลลัพธ์ที่แตกต่างกัน) ฉันจะใส่สิ่งต่อไปนี้ในไฟล์ htaccess ของฉัน: RewriteEngine …

11
. htaccess ไม่เปลี่ยนเส้นทางไปยังหน้า www-prefixed อย่างถูกต้อง
ฉันกำลังพยายามเปลี่ยนเส้นทาง URL ที่ไม่มี www ไปที่ www.version (example.com ถึง www.example.com) ฉันใช้ตามปกติ RewriteCond %{HTTP_HOST} ^example\.com [nc] RewriteRule (.*) http://www.example.com/$1 [R=301,L] สิ่งนี้ใช้ได้กับโครงการอื่น ๆ ของฉันทั้งหมด อย่างไรก็ตามในเว็บไซต์นี้โดยเฉพาะมันจะจบลงด้วยการวนรอบการเปลี่ยนเส้นทาง นี่คือส่วนที่แปลกประหลาด: ฉันพยายามที่จะม้วนเวอร์ชั่นที่ไม่ใช่ www เพื่อดูว่าส่วนหัวของมันส่งให้ใช้ curl --get http://example.com --dump-header domain.header > domain.htmlอะไร ไฟล์ส่วนหัวมีลักษณะดังนี้: HTTP/1.1 301 Moved Permanently Date: Mon, 06 Jun 2011 14:45:16 GMT Server: Apache/2.2.16 (Debian) Location: http://example.com/ …

3
จำกัด ขนาดไฟล์อัพโหลดและเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าข้อผิดพลาดหากเกินขีด จำกัด
เป็นไปได้หรือไม่ที่จะเปลี่ยนเส้นทางผู้ใช้ไปยังfile too bigหน้าไฟล์ เมื่อขนาดคำขอ POST เกินขีด จำกัด ที่ระบุไว้ ฉันรู้เกี่ยวกับตัวเลือกขนาดคำขอสูงสุด แต่มันให้เฉพาะหน้าสแตติกที่ไม่สามารถโหลดมากเกินไป ฉันกำลังคิดที่จะสร้างกฎการเขียนซ้ำซึ่งใช้เวลา ขนาดเนื้อหาจากเนื้อความคำขอเป็นอินพุตและเปลี่ยนเส้นทางไปยังหน้าข้อผิดพลาด UPDATE ตอนนี้เราใช้ nginx เป็นส่วนหน้า มีคำแนะนำใหม่ ๆ ไหม?

4
มีความสำคัญต่อกฎการสั่งซื้อใน htaccess หรือไม่
ฉันหวังว่านี่เป็นคำตอบที่ง่ายใช่หรือไม่ใช่ (โปรดระบุสาเหตุ) คำถามที่ 1: การวางกฎใน htaccess นั้นมีความสำคัญอย่างไร เนื่องจากเป็นรายการที่แยกจากกันโดยสิ้นเชิง: ยกตัวอย่างเช่น Q2: ถ้าใช่ฉันจะใช้คำสั่งที่ถูกต้องหรือไม่ เพื่อเร่งความเร็วเครื่องยนต์ htacces และไม่เกินมันด้วยกฎที่ไม่จำเป็น? Q3: เคล็ดลับใด ๆ เกี่ยวกับสิ่งที่จะปิดการใช้งาน / เพิ่มที่นี่ยินดีต้อนรับสู่ jucily +1! # DirectoryIndex index.php /index.php AddDefaultCharset UTF-8 RewriteEngine on # Options All # Options +FollowSymLinks # Options +FollowSymLinks -Indexes -ExecCGI # RewriteBase / ##################################################### <IfModule mod_headers.c> ExpiresActive On ExpiresDefault …

1
ทำไม RewriteLog ของฉันไม่ทำงาน
ฉันมี. htaccess ซึ่งมีลักษณะเช่นนี้: RewriteEngine on RewriteLog "/Applications/MAMP/logs/rewrite_engine_log" RewriteCond %{REQUEST_URI} !/(index.php|css|images|js)/.*$ RewriteRule (.*) /mysite/index.php/$1 เมื่อฉันเพิ่มคำสั่ง RewriteLog นั้นฉันได้รับข้อผิดพลาดภายในของเซิร์ฟเวอร์ ในล็อกไฟล์ Apache ฉันได้รับข้อมูลนี้: /Applications/MAMP/htdocs/mysite/.htaccess: RewriteLog not allowed here ฉันไม่ได้สร้างไฟล์ rewrite_engine_log นั้นด้วยตนเอง แต่พา ธ / Applications / MAMP / logs / มีอยู่ใน mac ของฉัน ฉันจะลองอะไรต่อไปเพื่อรับไฟล์บันทึกของ RewriteEngine ได้บ้าง

2
โฮสต์โดเมนหลักจากโฟลเดอร์ย่อย [ปิด]
ฉันมีปัญหาในการทำให้ไดเรกทอรีย่อยทำหน้าที่เป็น public_html สำหรับโดเมนหลักของฉันและรับวิธีแก้ปัญหาที่ทำงานกับไดเรกทอรีย่อยของโดเมนนั้นด้วย การโฮสต์ของฉันทำให้ฉันสามารถโฮสต์ไซต์ได้หลายไซต์ซึ่งทั้งหมดนั้นใช้งานได้ดี ฉันได้ตั้งค่าโฟลเดอร์ย่อยภายใต้ไดเรกทอรี~ / public_html /ชื่อ/ domains / ของฉันที่ฉันสร้างโฟลเดอร์สำหรับแต่ละเว็บไซต์แยกกัน เช่น public_html โดเมน websiteone websitetwo websitethree ... สิ่งนี้ทำให้เว็บไซต์ของฉันเป็นระเบียบเรียบร้อย ปัญหาเดียวก็คือการได้รับ "โดเมนหลัก" ของฉันเพื่อให้พอดีกับระบบนี้ ดูเหมือนว่าโดเมนหลักของฉันจะผูกติดอยู่กับบัญชีของฉัน (หรือ Apache หรืออะไรบางอย่าง) ดังนั้นฉันจึงไม่สามารถเปลี่ยน "รากเอกสาร" ของโดเมนนี้ได้ ฉันสามารถกำหนดรากของเอกสารสำหรับโดเมนอื่น ๆ ("Addon Domains") ที่ฉันเพิ่มใน cPanel ได้โดยไม่มีปัญหา แต่โดเมนหลักนั้นแตกต่างกัน ฉันได้รับคำสั่งให้แก้ไขไฟล์. htaccess เพื่อเปลี่ยนเส้นทางโดเมนหลักไปยังไดเรกทอรีย่อย สิ่งนี้ดูเหมือนจะใช้งานได้ดีและเว็บไซต์ของฉันทำงานได้ดีบนหน้าแรก / หน้าดัชนี ปัญหาที่ฉันมีคือถ้าฉันพยายามนำทางเบราว์เซอร์ของฉันเพื่อพูดโฟลเดอร์รูปภาพ (เพียงแค่ตัวอย่าง) ของเว็บไซต์หลักของฉันเช่นนี้: www.yourmaindomain.com/images/ ดูเหมือนว่าจะไม่สนใจการเปลี่ยนเส้นทางและแสดงไดเรกทอรีเซิร์ฟเวอร์ทั้งหมดใน URL เช่นนี้ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.