วิธีการเปิดใช้งาน. htaccess ใน Apache บน Ubuntu


15

ฉันพยายามเปิดใช้งานการใช้ไฟล์htaccessใน Ubuntu 14.04 (Apache 2.4.7) ฉันรู้ว่าคำถามนี้มีหลายสิ่งที่เป็นไปได้ แต่ไม่มีใครช่วยฉันได้

.htaccess

ErrorDocument 404 /404.html

000-default.conf

<VirtualHost *:80>
AccessFileName .htaccess

ServerAdmin webmaster@localhost
DocumentRoot /var/www

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/>
  Options Indexes FollowSymLinks Includes
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
</VirtualHost>

ต้องการอะไรอีก


1
AllowOverride คำสั่งทั้งหมดอนุญาตตัวเลือกทั้งหมดในไฟล์. htaccess 000-default.conf ถือว่ามีเพียงหนึ่งไซต์บนเซิร์ฟเวอร์ของคุณ ไฟล์. htaccess ไม่ทำงานสำหรับคุณหรือไม่ มีโฮสต์มากกว่าหนึ่งไซต์บนเซิร์ฟเวอร์นี้หรือไม่
Closnoc

มีหลายโฟลเดอร์ใน / var / www แต่ไม่มีการสร้างโฮสต์เสมือน / etc / apache2 / sites-available / folder มีสองไฟล์คือ 000-default.conf และ default-ssl.conf ไฟล์ htaccess ตั้งอยู่ใน / var / www /
David ZIP

อาจเป็น 'DocumentRoot / var / www /' (สแลชต่อท้าย)
Kovah

ตรวจสอบเพื่อให้แน่ใจว่า / etc / apache2 / sites-enabled / มีลิงค์ไปยัง 000-default.conf หากคุณเปลี่ยนไฟล์ /var/www/index.html คุณสามารถเห็นการเปลี่ยนแปลงเมื่อคุณดูเซิร์ฟเวอร์ด้วยเว็บเบราว์เซอร์ใช่ไหม
Stephen Ostermiller

คำตอบ:


26

ขั้นแรก

เปิดไฟล์เป็น

sudo vim /etc/apache2/apache2.conf

ขั้นตอนที่สอง

ลบเครื่องหมายความคิดเห็น (#) หากคุณพบก่อนหน้าบรรทัดนี้ (หมายเลขบรรทัด 187 ประมาณ)

AccessFileName .htaccess

ขั้นตอนที่สาม

จากนั้นหาบรรทัดที่มี

<Directory /var/www/>
     Options Indexes FollowSymLinks
     AllowOverride None
     Require all granted
</Directory>

แทนที่ "ไม่มี" ด้วย "ทั้งหมด"

AllowOverride All

และ voila ... ได้.htaccessผล !!


3
การเปลี่ยนแปลงจะไม่มีผลจนกว่าฉันจะรีสตาร์ทคำสั่ง apache: service apache restart
Tahir Yasin

1
ฉันแนะนำตามที่ @TahirYasin กล่าวถึงให้ทำการรีสตาร์ท apache sudo service apache2 restart.
www139


1

ในกรณีของการเปลี่ยนแปลงAllowOverride NoneไปAllowOverride Allใน /etc/apache2/sites-enabled/000-default.confช่วย

อื่น ๆ ทั้งหมด.confAllowOverride Allไฟล์มีอยู่แล้ว


0
  1. ใน/etc/apache2/apache2.conf ลบเครื่องหมายความคิดเห็น (# ) จากAccessFileName .htaccess
  2. ชื่อของไฟล์กำหนดค่า Apache ของคุณไม่ได้มาตรฐาน คุณสามารถเปลี่ยนชื่อเป็นdefault.confใน Windows และเปลี่ยนชื่อเป็นdefaultใน Linux ในระบบปฏิบัติการที่ใช้ Linux ให้ใช้รหัสนี้ในเทอร์มินัล:

    sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/default
    

มันถูกตั้งชื่อด้วยศูนย์เพื่อให้มันมาก่อนตามลำดับตัวอักษร หากคุณมีไฟล์ default.conf จากนั้นสร้างไซต์สำหรับ anteater.com ดังนั้น anteater จะกลายเป็นโฮสต์เริ่มต้นเนื่องจากไฟล์ถูกโหลดขึ้นมาก่อน เก็บเงิน 000 ไว้เพื่อป้องกันปัญหาดังกล่าว ชื่อของไฟล์ conf ไม่ควรเกี่ยวข้องกับ. htaccess หรือไม่
Stephen Ostermiller

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