การเปิดใช้งานไฟล์. htaccess เพื่อเขียนเส้นทางใหม่ (ไม่ทำงาน)


17

บทเรียนทั้งหมดบอกให้ฉันแก้ไข: /etc/apache2/sites-available/defaultแต่ไฟล์นี้ไม่มีอยู่สำหรับฉัน ภายในไฟล์นี้ฉันจะต้องแก้ไข:

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
#AllowOverride All
#AllowOverride AuthConfig FileInfo Indexes Limit Options=All, MultiViews        
Order allow,deny
allow from all </Directory>

ไฟล์ควรมีลักษณะอย่างไรและฉันควรสร้างด้วยตัวเอง?

นอกจากนี้ฉันมี000-default.confไฟล์ แต่ 'รหัส' ข้างต้นไม่ได้อยู่ในนั้น

คำตอบ:


59

สำหรับ apache เวอร์ชั่น 2.4 ขึ้นไปคุณต้องไปที่

/etc/apache2/apache2.conf

คุณต้องแก้ไขไฟล์นั้น (คุณควรได้รับอนุญาตรูท) เปลี่ยนข้อความไดเรกทอรีเช่นนี้

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

ตอนนี้รีสตาร์ท apache

service apache2 restart

หวังว่ามันจะใช้งานได้


คุณช่วยอธิบายสิ่งนี้ได้ไหม วิธีนี้ผูกกับ. htaccess อย่างไร . htaccess ของฉันไม่อ่านเลย
chx101

1
บรรทัดสำคัญที่นี่คือAllowOverride Allนี่หมายความว่าการตั้งค่าทั้งหมดสามารถตั้งค่า (แทนที่) ใน.htaccessไฟล์ ดูเอกสาร: httpd.apache.org/docs/2.4/mod/core.html#allowoverride
jacwah

18

Ubuntu 14.04 (และ Apache 2.4) DocumentRoot เริ่มต้นถูกเปลี่ยนจาก / var / www เป็น / var / www / html

ก่อนอื่นให้เปิดใช้งาน a2enmod

sudo a2enmod rewrite 

และ

sudo service apache2 restart

sudo nano /etc/apache2/sites-enabled/000-default.conf

เพิ่มบรรทัดเหล่านี้ในตอนท้าย

<Directory /var/www/html>
    AllowOverride All
 </Directory>

และ

sudo service apache2 restart

1
วิธีนี้ใช้ได้ผลกับฉันเพราะฉันต้องเปิดใช้งาน mod_rewrite ก่อน ขอบคุณมาก.
kishor10d

1
มันใช้งานได้จริงสำหรับ apache 2.4 บันทึกวันของฉัน แม้หลังจากแก้ไข maing apache2.conf .htaccess แล้วก็ใช้งานไม่ได้
Faisal Sarfraz

9

หากคุณไม่ต้องการที่จะทำซ้ำการกำหนดค่าเดียวกันในแต่ละการอัพเกรด / ปรับปรุง

วิธีที่ดีที่สุดคือ:

แก้ไขหรือสร้างไฟล์ปรับแต่ง

/etc/apache2/conf-available/httpd.conf

เพิ่ม

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

เปิดใช้งานไฟล์กำหนดค่า

sudo a2enconf httpd

รีสตาร์ทหรือโหลด Apache อีกครั้ง

sudo service apache2 restart

หรือ

sudo service apache2 reload

มันจบแล้ว!

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