Panduan Lengkap 2020 Untuk .HTACCESS – Dari Asas Untuk Pembelajaran Lanjutan

Pendedahan: Sokongan anda membantu mengekalkan laman web ini! Kami memperoleh bayaran rujukan untuk beberapa perkhidmatan yang kami cadangkan di halaman ini.


Dengan penggunaan fail .htaccess, anda dapat mengawal banyak aspek pelayan web Apache (dan banyak variannya). Di bawah ini, anda akan mengetahui semua yang perlu anda ketahui menyediakan halaman ralat khas, direktori perlindungan kata laluan, pengalihan dan banyak lagi.

Contents

Cara Menggunakan Panduan Ini

Panduan ini dibina untuk berfungsi sebagai sumber yang komprehensif untuk menggunakan .htaccess. Sekiranya anda benar-benar baru menggunakan .htaccess – anda mungkin ingin memulakan dengan bab pertama “.htaccess Basics” di bawah.

Sekiranya anda mencari contoh kod atau tutorial tertentu, lihat navigasi di sebelah kanan halaman ini untuk melompat terus ke sub-bahagian dalam halaman ini.

.Asas htaccess

Mari berkenalan dengan beberapa asas .htaccess sebelum menyelami arahan.

Apa itu .htaccess?

Fail .htaccess adalah fail konfigurasi yang mengawal bagaimana pelayan web bertindak balas terhadap pelbagai permintaan. Ia disokong oleh beberapa pelayan web, termasuk pelayan web Apache yang popular yang digunakan oleh kebanyakan penyedia hosting web komersial.

.fail htaccess beroperasi di tingkat direktori, yang membolehkannya mengatasi tetapan konfigurasi global arahan .htaccess yang lebih tinggi di pohon direktori.

Bagaimana .htaccess Digunakan?

Beberapa kegunaan umum untuk .htaccess termasuk mengalihkan URL, mengaktifkan perlindungan kata laluan untuk laman web (atau halaman laman web); memaparkan halaman ralat tersuai (seperti 404 halaman); dan meningkatkan SEO melalui dasar garis miring yang konsisten.

Dalam kes terakhir, juruweb boleh memilih sama ada memerlukan garis miring akhir pada akhir setiap URL di laman web atau tidak.

Mengapa Ia dipanggil .htaccess?

.htaccess bermaksud “akses hiperteks.” Nama itu berasal dari penggunaan asli alat ini untuk mengawal akses pengguna ke file tertentu berdasarkan per-direktori.

Menggunakan subset arahan tetapan http.conf Apache, .htaccess membenarkan pentadbir sistem untuk menyekat akses ke direktori individu kepada pengguna dengan nama dan kata laluan yang ditentukan dalam fail .htpasswd yang disertakan..

Walaupun fail .htaccess masih digunakan untuk ini, ia juga digunakan untuk beberapa perkara lain yang akan kita bahas dalam panduan ini.

Di Mana Fail .htaccess?

Secara teori, setiap folder (direktori) di pelayan anda boleh memiliki satu. Namun, secara umum, ada satu folder root web anda – folder itulah yang menyimpan semua kandungan laman web anda, dan biasanya dilabelkan seperti public_html atau www.

Sekiranya anda mempunyai satu direktori yang mengandungi banyak subdirektori laman web, biasanya akan ada fail .htaccess di direktori root (public_html) utama dan juga satu di setiap subdirektori (/ nama laman).

Mengapa Saya Tidak Dapat Mencari Fail .htaccess Saya?

Pada kebanyakan sistem fail, nama fail yang bermula dengan titik (.) Adalah fail tersembunyi. Ini bermakna mereka biasanya tidak dapat dilihat secara lalai.

Tetapi mereka tidak sukar untuk mendapatkannya. Pelanggan FTP atau Pengurus Fail anda harus mempunyai pengaturan untuk “tunjukkan fail tersembunyi.” Ini akan berada di tempat yang berbeda dalam program yang berbeda, tetapi biasanya ada di “Preferences”, “Settings”, atau “Folder Options.” Kadang-kadang anda akan menemuinya di menu “Lihat”.

Bagaimana Sekiranya Saya Tidak Mempunyai Fail .htaccess?

Pertama sekali, pastikan bahawa anda telah mengaktifkan “tunjukkan fail tersembunyi” (atau yang setara), supaya anda dapat memastikan bahawa anda sebenarnya tidak memilikinya. Selalunya, fail .htaccess dibuat secara automatik, jadi biasanya anda akan memilikinya. Tetapi ini tidak selalu berlaku.

Sekiranya anda tidak memilikinya, anda boleh membuatnya dengan mudah:

  • Mulakan fail baru dalam penyunting teks biasa.
  • Simpan dalam format ASCII (bukan UTF-8 atau yang lain) sebagai .htaccess.
    • Pastikan ia bukan htaccess.txt atau semacamnya. Fail hanya boleh mempunyai nama .htaccess tanpa perluasan fail tambahan.
  • Muat naik ke direktori yang sesuai melalui FTP atau pengurus fail berasaskan penyemak imbas anda.

Ralat Mengendalikan

Menggunakan fail .htaccess untuk menentukan dokumen ralat adalah salah satu perkara paling mudah yang boleh anda lakukan dengan ciri ini.

Apakah Kod Ralat?

Ketika permintaan dibuat ke pelayan web, ia berusaha untuk menanggapi permintaan itu, biasanya dengan mengirimkan dokumen (dalam hal halaman HTML), atau dengan mengakses aplikasi dan mengembalikan output (dalam hal Sistem Manajemen Konten dan aplikasi web lain).

Sekiranya ada yang salah dengan ini, ralat akan dihasilkan. Jenis kesalahan yang berlainan mempunyai kod ralat yang berbeza. Anda mungkin biasa dengan ralat 404, yang dikembalikan jika dokumen tidak dapat dijumpai di pelayan.

Terdapat banyak kod ralat lain yang dapat dijawab oleh pelayan.

Kesalahan Permintaan Pelanggan

  • 400 – Permintaan Buruk
  • 401 – Kebenaran Diperlukan
  • 402 – Bayaran Diperlukan (belum digunakan)
  • 403 Terlarang
  • 404 – Tidak dijumpai
  • 405 – Kaedah Tidak Dibolehkan
  • 406 – Tidak Boleh Diterima (pengekodan)
  • 407 – Pengesahan Proksi Diperlukan
  • 408 – Permintaan Tamat Masa
  • 409 – Permintaan Bercanggah
  • 410 – Sudah
  • 411 – Panjang Kandungan Diperlukan
  • 412 – Prasyarat Gagal
  • 413 – Memohon Entiti Terlalu Lama
  • 414 – Meminta URI Terlalu Lama
  • 415 – Jenis Media Tidak Disokong.

Kesalahan Pelayan

  • 500 – Ralat Pelayan Dalaman
  • 501 – Tidak Dilaksanakan
  • 502 – Gerbang Buruk
  • 503 – Perkhidmatan Tidak Tersedia
  • 504 – Waktu Tamat Gateway
  • 505 – Versi HTTP Tidak Disokong.

Pengendalian Ralat Lalai

Sekiranya anda tidak menentukan jenis pengendalian ralat, pelayan hanya akan mengembalikan mesej ke penyemak imbas, dan penyemak imbas akan memaparkan mesej ralat umum kepada pengguna. Ini biasanya tidak sesuai.

Menentukan Dokumen Ralat

Buat dokumen HTML untuk setiap kod ralat yang ingin anda kendalikan. Anda boleh menamakannya apa sahaja yang anda suka, tetapi berguna untuk menamakannya sesuatu yang akan membantu anda mengingat apa yang mereka inginkan, seperti tidak ditemui.html atau hanya 404.html.

Kemudian, dalam fail .htaccess, tentukan dokumen yang akan digunakan dengan setiap jenis ralat.

ErrorDocument 400 /errors/bad-request.html
ErrorDocument 401 /errors/auth-reqd.html
ErrorDocument 403 /errors/forbid.html
ErrorDocument 404 /errors/not-found.html
ErrorDocument 500 /errors/server-err.html

Perhatikan bahawa setiap arahan diletakkan pada barisnya sendiri.

Itu sahaja. Sangat ringkas.

Alternatif ke .htaccess Untuk Mengendalikan Ralat

Sebilangan besar Sistem Pengurusan Kandungan (CMS) seperti WordPress dan Drupal, dan kebanyakan aplikasi web, akan mempunyai cara mereka sendiri untuk menangani kebanyakan kod ralat ini.

Perlindungan Kata Laluan Dengan .htaccess

Tujuan asal fail .htaccess adalah untuk menyekat akses ke direktori tertentu berdasarkan setiap pengguna (dengan itu namanya, akses hiperteks). Oleh itu, kita akan melihatnya terlebih dahulu.

.htpasswd

Nama pengguna dan kata laluan untuk sistem .htaccess disimpan dalam nama fail .htpasswd.

Ini disimpan setiap satu dalam satu baris, dalam bentuk:

nama pengguna: kata laluan yang disulitkan

sebagai contoh:

johnsmith: F418zSM0k6tGI

Penting untuk menyedari bahawa kata laluan yang disimpan dalam fail bukanlah kata laluan yang sebenarnya digunakan untuk log masuk. Ia adalah hash kriptografi kata laluan.

Ini bermaksud kata laluan telah dijalankan melalui algoritma penyulitan, dan hasilnya disimpan. Semasa pengguna log masuk, kata laluan teks biasa dimasukkan dan dijalankan melalui algoritma yang sama. Sekiranya inputnya sama, kata laluan sesuai dan pengguna diberi akses.

Menyimpan kata laluan dengan cara ini menjadikannya lebih selamat – jika seseorang mendapat akses ke fail .htpasswd anda, mereka hanya akan melihat kata laluan yang dicincang, bukan yang asli. Dan tidak ada cara untuk membina semula yang asli dari hash – ia adalah penyulitan sehala.

Beberapa algoritma hash yang berbeza dapat digunakan:

  • Algoritma Selamat – Gunakan salah satu daripada ini
    • bcrypt – Ini adalah yang paling selamat, tetapi juga paling lambat untuk dikira. Ia disokong oleh Apache dan Nginx.
    • md5 – Ini adalah algoritma hash lalai yang digunakan oleh Apache versi semasa. Ia tidak disokong oleh Nginx.
  • Algoritma Tidak Selamat – Jangan gunakannya
    • crypt () – Ini adalah fungsi hashing lalai, tetapi tidak begitu selamat.
    • SHA dan SHA masin.

Membuat Nama Pengguna dan Kata Laluan pada Baris Perintah

Anda boleh membuat fail .htpasswd, dan menambahkan pasangan nama pengguna-kata laluan padanya, terus dari baris arahan atau terminal SSH.

Perintah untuk menangani fail .htpasswd hanyalah htpasswd.

Untuk membuat fail .htpasswd baru, gunakan perintah dengan pilihan -c (untuk buat), kemudian ketik jalan ke direktori (bukan URL, jalan sebenarnya di pelayan). Anda juga boleh memasukkan pengguna yang ingin anda tambahkan.

> htpasswd -c /usr/local/etc/.htpasswd johnsmith

Ini membuat fail .htpasswd baru di direktori / etc /, dan menambahkan rekod untuk pengguna bernama johnsmith. Anda akan diminta kata laluan, yang juga akan disimpan, menggunakan enkripsi md5.

Sekiranya sudah ada file .htpasswd di lokasi yang ditentukan, yang baru tidak akan dibuat – pengguna baru hanya ditambahkan ke fail yang ada.

Sekiranya anda lebih suka menggunakan algoritma hash bcrypt, gunakan pilihan -b.

Penceraian Kata Laluan Tanpa Baris Perintah

Sekiranya anda tidak merasa selesa menggunakan baris perintah atau terminal SSH (atau jika anda tidak mempunyai akses untuk itu), anda boleh membuat fail .htpasswd dan mengisi dengan menggunakan editor teks biasa, dan memuat naiknya melalui FTP atau pengurus fail.

Tetapi anda perlu menyulitkan kata laluan anda entah bagaimana, kerana perintah htpasswd menguruskannya untuk anda.

Terdapat banyak utiliti penyulitan .htpasswd yang tersedia dalam talian. Yang terbaik adalah penjana htpasswd di Aspirine.org.

Ini memberi anda beberapa pilihan untuk algoritma hashing dan kekuatan kata laluan. Anda hanya boleh menyalin dan menampal output dari sana ke dalam fail .htpasswd anda.

Tempat Menyimpan Fail .htpasswd Anda

Anda tidak perlu mempunyai fail .htpasswd yang terpisah untuk setiap fail .htaccess. Sebenarnya, anda tidak seharusnya. Dalam keadaan biasa, anda harus memiliki satu untuk keseluruhan akaun hosting web atau direktori pelayan utama anda.

Fail .htpasswd tidak boleh berada di direktori yang dapat diakses oleh umum – bukan public_html atau www atau subdirektori mana pun. Harus berada di atasnya, dalam folder yang hanya boleh diakses dari pelayan itu sendiri.

Cara Menggunakan .htpasswd Dengan .htaccess

Setiap direktori boleh mempunyai fail .htaccess sendiri, dengan set pengguna sendiri yang diizinkan untuk mengaksesnya.

Sekiranya anda mahu mana-mana (termasuk pengguna yang tidak masuk) mengakses direktori dan failnya, jangan buat apa-apa – itulah lalai.

Untuk menyekat akses anda perlu menambahkan yang berikut ke fail .htaccess:

AuthUserFile /usr/local/etc/.htpasswd
Nama Pengarang "Nama Kawasan Selamat"
Asas Jenis Auth

memerlukan pengguna yang sah

Baris pertama menentukan jalan dan nama fail ke senarai nama pengguna dan kata laluan anda. Baris kedua menentukan nama untuk kawasan yang dilindungi. Ini boleh menjadi apa sahaja yang anda suka. Baris ketiga menetapkan pengesahan “Asas”, yang biasanya anda perlukan.

Teg menentukan apa yang dibatasi (dalam kes ini, kemampuan untuk MENDAPATKAN atau POST ke mana-mana fail dalam direktori). Di dalam sepasang tag terdapat senarai siapa yang dibenarkan mengakses fail.

Dalam contoh di atas, mana-mana pengguna yang sah dapat mengakses fail. Sekiranya anda ingin menyekat akses kepada pengguna tertentu atau beberapa pengguna, anda boleh menamakannya.

AuthUserFile /usr/local/etc/.htpasswd
Nama Pengarang "Nama Kawasan Selamat"
Asas Jenis Auth

memerlukan pengguna johnsmith
memerlukan pengguna janedoe

Anda juga boleh memasukkan pengguna ke dalam kumpulan dan membenarkan akses berdasarkan kumpulan. Ini dilakukan dengan menambahkan fail lain yang menentukan kumpulan.

Fail kumpulan, yang boleh dinamakan (misalnya). Kumpulan berkelompok seperti ini:

pentadbir: johnsmith janedoe
kakitangan: jackdoe cindysmith

Kemudian anda boleh menentukannya dalam fail .htaccess anda:

AuthUserFile /usr/local/etc/.htpasswd
AuthGroupFile /usr/local/etc/.htgroup
Nama Pengarang "Kawasan Pentadbiran"
Asas Jenis Auth

memerlukan pentadbir kumpulan

Alternatif untuk .htpasswd

Menggunakan .htaccess dan .htpasswd untuk menyekat akses ke fail tertentu di pelayan anda hanya akan masuk akal jika anda mempunyai banyak fail statik. Ciri ini dikembangkan ketika laman web biasanya merupakan kumpulan dokumen HTML dan sumber daya yang berkaitan.

Sekiranya anda menggunakan sistem pengurusan kandungan (CMS) seperti WordPress atau Drupal, anda boleh menggunakan ciri pengurusan pengguna terbina dalam untuk menyekat atau memberikan akses ke kandungan.

Mendayakan Termasuk Pelayan (SSI)

Sekarang mari kita pelajari apa itu Sisi Pelayan dan bagaimana anda boleh menggunakannya.

Apa Itu Bahagian Pelayan?

SSI, atau Server Side Includes, adalah bahasa skrip ringan yang digunakan terutamanya untuk memasukkan dokumen HTML ke dalam dokumen HTML yang lain. Ini memudahkan penggunaan kembali elemen umum, seperti header, footer, sidebars, dan menu. Anda boleh menganggapnya sebagai pendahulu sistem templat dan pengurusan kandungan hari ini.


SSI juga mempunyai arahan bersyarat (jika, lain-lain, dll.) Dan pemboleh ubah, menjadikannya bahasa skrip yang lengkap, jika agak sukar digunakan,. (Biasanya, projek yang lebih rumit daripada segelintir yang disertakan akan menyebabkan pembangun memilih bahasa yang lebih mantap seperti PHP atau Perl.)

Mengaktifkan SSI

Beberapa pelayan hosting web akan membolehkan Pelayan Sisi Termasuk diaktifkan secara lalai. Sekiranya tidak, anda boleh mengaktifkannya dengan fail .htaccess anda, seperti:

Teks AddType / html .shtml
AddHandler yang dihuraikan pelayan .shtml
Pilihan Indeks FollowSymLinks Termasuk

Ini harus membolehkan SSI untuk semua fail yang mempunyai pelanjutan .shtml.

SSI pada fail .html

Sekiranya anda ingin mengaktifkan penghuraian SSI pada fail .html, anda boleh menambahkan arahan untuk mencapai itu:

AddHandler yang dihuraikan oleh pelayan .html

Manfaat melakukan ini adalah anda boleh menggunakan SSI tanpa memberitahu dunia bahawa anda menggunakannya. Juga, jika anda mengubah implementasi di masa depan, anda dapat menyimpan sambungan fail .html.

Kelemahannya adalah bahawa setiap fail .html akan dihuraikan dengan SSI. Sekiranya anda mempunyai banyak fail .html yang sebenarnya tidak memerlukan penguraian SSI, ini dapat memperkenalkan banyak overhead pelayan yang tidak diperlukan, melambatkan masa muat halaman anda dan menggunakan sumber CPU.

SSI di Halaman Indeks Anda

Sekiranya anda tidak mahu menguraikan semua fail .html, tetapi anda mahu menggunakan SSI pada halaman indeks (laman utama), anda perlu menentukannya dalam fail .htaccess anda.

Itu kerana ketika pelayan web mencari halaman indeks direktori, ia mencari index.html, kecuali anda memberitahu sebaliknya.

Sekiranya anda tidak menghuraikan fail .html, anda memerlukan halaman indeks anda dinamakan index.shtml agar SSI berfungsi, dan pelayan anda tidak tahu mencarinya secara lalai.

Untuk mengaktifkannya, cukup tambahkan:

DirektoriIndex index.shtml index.html

Ini memberi amaran kepada pelayan web bahawa fail index.shtml adalah fail indeks utama untuk direktori. Parameter kedua, index.html adalah sandaran, sekiranya index.shtml tidak dapat dijumpai.

Senarai Hitam IP dan Senarai Putih IP

Anda boleh menggunakan .htaccess untuk menyekat pengguna dari alamat IP tertentu (senarai hitam). Ini berguna sekiranya anda telah mengenal pasti pengguna individu dari alamat IP tertentu yang menyebabkan masalah.

Anda juga boleh melakukan sebaliknya, menyekat semua orang kecuali pelawat dari alamat IP tertentu (senarai putih). Ini berguna jika anda perlu menyekat akses kepada pengguna yang diluluskan sahaja.

Senarai hitam oleh IP

Untuk menyekat alamat IP tertentu, cukup gunakan arahan berikut, dengan alamat IP yang sesuai:

perintah membenarkan, menolak
menafikan dari 111.22.3.4
menafikan dari 789.56.4.
izinkan dari semua

Baris pertama menyatakan bahawa arahan izin akan dinilai terlebih dahulu, sebelum arahan penolakan. Ini bermaksud bahawa membenarkan dari semua akan menjadi keadaan lalai, dan hanya yang sesuai dengan arahan penolakan akan ditolak.

Sekiranya ini dibalikkan untuk memerintahkan penolakan, izinkan, maka perkara terakhir yang dinilai adalah izin dari semua arahan, yang akan memungkinkan semua orang, mengatasi pernyataan penolakan.

Perhatikan baris ketiga, yang telah menolak dari 789.56.4. – itu bukan alamat IP yang lengkap. Ini akan menolak semua alamat IP dalam blok itu (yang bermula dengan 789.56.4).

Anda boleh memasukkan seberapa banyak alamat IP yang anda mahu, satu di setiap baris, dengan arahan penolakan dari.

Senarai putih oleh IP

Sebaliknya senarai hitam adalah senarai putih – menyekat semua orang kecuali yang anda tentukan.

Seperti yang anda sangka, arahan pesanan harus diterbalikkan, agar semua orang ditolak terlebih dahulu, tetapi kemudian alamat tertentu dibenarkan.

perintah menolak, membenarkan
menafikan dari semua
membenarkan dari 111.22.3.4
membenarkan dari 789.56.4.

Tindakan Menyekat

.htaccess boleh digunakan untuk menyekat pengguna mengikut domain atau perujuk. Dan anda boleh menggunakannya untuk menyekat bot dan pengikis. Mari cari caranya.

Cara Menyekat Pengguna Mengikut Domain

Anda juga boleh menyekat atau membenarkan pengguna berdasarkan nama domain. Ini dapat membantu menyekat orang walaupun mereka berpindah dari alamat IP ke alamat IP.

Walau bagaimanapun, ini tidak akan berfungsi terhadap orang yang dapat mengawal pemetaan alamat IP DNS terbalik mereka.

perintah membenarkan, menolak
menafikan dari example.com
izinkan dari semua

Ini berfungsi untuk subdomain, juga – dalam contoh sebelumnya, pelawat dari xyz.example.com juga akan disekat.

Cara Menyekat Pengguna dengan Perujuk

Rujukan adalah laman web yang mengandungi pautan ke laman web anda. Apabila seseorang mengikuti pautan ke halaman di laman web anda, laman web dari mana mereka berasal adalah perujuk.

Ini bukan hanya berfungsi untuk pautan hiper yang boleh diklik ke laman web anda.

Halaman di mana sahaja di internet boleh menghubungkan terus ke gambar anda (“hotlinking”) – menggunakan lebar jalur anda, dan mungkin melanggar hak cipta anda, tanpa memberikan manfaat kepada anda dari segi lalu lintas. Mereka juga boleh membuat pautan panas ke fail CSS anda, skrip JS, atau sumber lain.

Sebilangan besar pemilik laman web baik-baik saja dengan perkara ini apabila berlaku sedikit sahaja, tetapi kadang-kadang perkara seperti ini boleh berubah menjadi penyalahgunaan.

Selain itu, kadangkala hyperlink yang boleh diklik dalam teks sebenarnya bermasalah, seperti ketika datang dari laman web yang bermusuhan.

Atas sebab-sebab ini, anda mungkin ingin menyekat permintaan yang berasal dari perujuk tertentu.

Untuk melakukan ini, anda memerlukan modul mod_rewrite diaktifkan. Ini diaktifkan secara lalai untuk kebanyakan host web, tetapi jika tidak (atau anda tidak pasti), anda biasanya boleh meminta syarikat hosting anda. (Sekiranya mereka tidak dapat atau tidak mengaktifkannya, anda mungkin ingin memikirkan hos baru.)

Arahan .htaccess yang mencapai penyekat berasaskan perujuk bergantung pada mesin mod_rewrite.

Kod yang hendak disekat oleh perujuk kelihatan seperti ini:

Tulis semulaEngine dihidupkan
Tulis semula%% http: //.*example.com [NC, ATAU]
Tulis semula%% http: //.*anotherexample.com [NC, ATAU]
Tulis semula%% http: //.*onemoreexample.com [NC]
Tulis semula Peraturan. * – [F]

Ini agak sukar, jadi mari kita melaluinya.

Baris pertama, RewriteEngine aktif, memberi amaran kepada penghurai bahawa serangkaian arahan yang berkaitan dengan penulisan semula akan datang.

Tiga baris seterusnya masing-masing menyekat satu domain rujukan. Bahagian yang perlu anda ubah untuk penggunaan anda sendiri adalah nama domain (contoh) dan peluasan (.com).

Slash ke belakang sebelum .com adalah watak pelarian. Pencocokan corak yang digunakan dalam nama domain adalah ungkapan biasa, dan titik bermaksud sesuatu di RegEx, jadi ia harus “melarikan diri” menggunakan garis miring belakang.

NC dalam tanda kurung menetapkan bahawa perlawanan tidak seharusnya peka huruf besar kecil. OR adalah harfiah “atau”, dan bermaksud bahawa ada peraturan lain yang akan datang. (Maksudnya – jika URL ini atau yang ini atau yang ini, ikuti peraturan penulisan semula ini.)

Baris terakhir adalah peraturan menulis semula sebenarnya. [F] bermaksud “Dilarang.” Segala permintaan dengan perujuk yang sepadan dengan permintaan dalam senarai akan gagal, dan memberikan ralat 403 Terlarang.

Menyekat Bot dan Pengikis Web

Salah satu aspek yang lebih menjengkelkan dalam mengurus laman web adalah mengetahui bahawa lebar jalur anda dimakan oleh pengunjung bukan manusia – bot, perayap, pengikis web.

Ini adalah program yang dirancang untuk menarik maklumat dari laman web anda, biasanya untuk tujuan menerbitkannya semula sebagai sebahagian dari operasi SEO kelas rendah.

Sudah tentu ada bot yang sah – seperti dari mesin carian utama. Tetapi selebihnya adalah seperti perosak yang hanya memakan sumber anda dan tidak memberikan apa-apa nilai kepada anda.

Terdapat beberapa ratus bot yang dikenal pasti. Anda tidak akan dapat menyekat kesemuanya, tetapi aktiviti ini boleh terus diketuk dengan menyekat sebanyak mungkin.

Terdapat sekumpulan peraturan penulisan semula yang berguna yang menyekat lebih daripada 400 bot terkenal yang disusun oleh AskApache.

Menentukan Fail Lalai untuk Direktori

Apabila permintaan dibuat ke pelayan web untuk URL yang tidak menentukan nama file, anggapan yang terdapat di dalam kebanyakan pelayan web adalah bahawa URL merujuk pada direktori.

Oleh itu, jika anda meminta http://example.com, Apache (dan kebanyakan pelayan web lain) akan mencari di direktori root untuk domain (biasanya / public_html atau yang serupa, tetapi mungkin / contoh-com) untuk lalai fail.

Fail lalai, secara lalai, disebut index.html. Ini kembali ke awal internet ketika laman web hanyalah kumpulan dokumen, dan halaman “beranda” biasanya merupakan indeks dari dokumen-dokumen tersebut.

Tetapi anda mungkin tidak mahu index.html menjadi halaman lalai. Sebagai contoh, anda mungkin memerlukan jenis fail yang berbeza, seperti index.shtml, index.xml, atau index.php.

Atau anda mungkin tidak menganggap halaman rumah anda sebagai “indeks” dan mahu menyebutnya sebagai sesuatu yang berbeza, seperti home.html atau main.html.

Menetapkan Halaman Direktori Lalai

.htaccess membolehkan anda menetapkan halaman lalai untuk direktori dengan mudah:

DirectoryIndex [nama fail di sini]

Sekiranya anda mahukan lalai anda menjadi home.html semudah:

DirektoriIndex home.html

Menetapkan Beberapa Halaman Lalai

Anda juga boleh menentukan lebih daripada satu DirectoryIndex:

DirektoriIndex index.php index.shtml index.html

Cara ini berfungsi ialah pelayan web mencari yang pertama terlebih dahulu. Sekiranya tidak dapat menemuinya, ia mencari yang kedua, dan seterusnya.

Mengapa anda mahu melakukan ini? Pasti anda tahu fail mana yang ingin anda gunakan sebagai halaman lalai anda, betul?

Ingat bahawa .htaccess mempengaruhi direktori sendiri, dan setiap subdirektori sehingga diganti oleh fail yang lebih tempatan. Ini bermaksud bahawa fail .htaccess di direktori root anda dapat memberikan arahan untuk banyak subdirektori, dan masing-masing mungkin mempunyai nama halaman lalai sendiri.

Mampu meletakkan peraturan tersebut dalam satu file .htaccess dalam root bermakna anda tidak perlu menduplikasi semua arahan lain dalam fail di setiap peringkat direktori.

Pengalihan URL dan Penulisan Semula URL

Salah satu penggunaan fail .htaccess yang paling biasa adalah pengalihan URL.

Pengalihan URL harus digunakan apabila URL untuk dokumen atau sumber telah berubah. Ini sangat berguna jika anda telah menyusun semula laman web anda atau menukar nama domain.

Pengalihan 301 vs 302

Dari sudut pandangan penyemak imbas, terdapat dua jenis pengalihan, 301 dan 302. (Angka-angka ini merujuk kepada kod ralat yang dihasilkan oleh pelayan web.)

301 bermaksud “Dipindahkan secara Tetap”, sementara 302 bermaksud “Dipindahkan Sementara.” Dalam kebanyakan kes, anda ingin menggunakan 301. Ini mengekalkan ekuiti SEO yang dimiliki oleh URL asal, meneruskannya ke halaman baru.

Ini juga akan menyebabkan kebanyakan penyemak imbas mengemas kini penanda halaman mereka. Sebilangan besar penyemak imbas juga akan menyimpan pemetaan lama ke baru, jadi mereka hanya akan meminta URL baru apabila pautan atau pengguna cuba mengakses yang asli. Sekiranya URL telah berubah secara kekal, ini semua adalah hasil yang diinginkan.

Terdapat sedikit alasan untuk menggunakan pengalihan 302, kerana biasanya ada sedikit alasan untuk mengubah URL buat sementara waktu. Mengubah URL sememangnya tidak diingini, tetapi kadang-kadang diperlukan. Mengubahnya buat sementara waktu, dengan rancangan untuk menukarnya kemudian, adalah idea yang tidak baik dan hampir selalu dapat dielakkan.

Semua contoh dalam bahagian ini akan menggunakan pengalihan 301.

Ubah arah berbanding Tulis semula

Terdapat dua cara yang berbeza untuk “menukar” URL dengan arahan .htaccess – arahan Redirect dan mesin mod_rewrite.

Perintah Redirect sebenarnya menghantar mesej pengalihan ke penyemak imbas, memberitahu apa URL lain yang perlu dicari.

Biasanya, alat mod_rewrite “menerjemahkan” satu URL (yang disediakan dalam permintaan) menjadi sesuatu yang akan difahami oleh sistem fail atau CMS, dan kemudian menangani permintaan itu seolah-olah URL yang diterjemahkan adalah URL yang diminta.

Apabila digunakan dengan cara ini, penyemak imbas web tidak menyedari bahawa apa-apa berlaku – ia hanya menerima kandungan yang diminta.

Alat mod_rewrite juga dapat digunakan untuk menghasilkan pengalihan 301 yang berfungsi dengan cara yang sama seperti perintah Redirect, tetapi dengan lebih banyak pilihan untuk peraturan – mod_rewrite dapat memiliki petunjuk pencocokan dan penulisan semula corak yang kompleks, yang tidak dapat dimanfaatkan oleh Redirect.

Pengalihan Halaman Asas

Untuk mengalihkan satu halaman ke URL lain, kodnya adalah:

Ubah hala 301 /relative-url.html http://example.com/full-url.html

Perintah satu baris ini mempunyai empat bahagian, masing-masing dipisahkan dengan satu ruang:

  • Perintah Redirect
  • Jenis pengalihan (301 – Dipindahkan secara Kekal)
  • URL relatif halaman asal
  • URL lengkap dan lengkap halaman baru.

URL relatif adalah relatif dengan direktori yang mengandungi fail .htaccess, yang biasanya merupakan root web, atau root domain.

Oleh itu, jika http://example.com/blog.php dipindahkan ke http://blog.example.com, kodnya adalah:

Ubah hala 301 /blog.php http://blog.example.com

Mengalihkan Bahagian Besar Laman Web Anda

Sekiranya anda telah memindahkan struktur direktori anda, tetapi nama halaman anda tetap sama, anda mungkin ingin mengalihkan semua permintaan untuk direktori tertentu ke yang baru.

Ubah hala 301 / direktori lama http://example.com/new-directory

Mengalihkan Seluruh Laman web

Bagaimana jika anda seluruh laman web telah berpindah ke URL baru? Mudah.

Ubah hala 301 / http://newurl.com

Mengalihkan www ke bukan www

Semakin lama, laman web menjauh dari subdomain www.

Itu tidak semestinya diperlukan, tetapi itu adalah penahan sejak hari-hari ketika kebanyakan orang yang mengendalikan laman web menggunakan pelayan untuk menyimpan banyak dokumen mereka sendiri, dan direktori www atau “web seluruh dunia” digunakan untuk kandungan yang mereka mahu berkongsi dengan orang lain.

Hari ini, beberapa orang menggunakannya, dan beberapa orang tidak menggunakannya. Malangnya, sebilangan pengguna masih menaip www secara automatik. di hadapan setiap URL di luar kebiasaan. Sekiranya anda tidak menggunakan www, anda ingin memastikan bahawa permintaan ini tiba di tempat yang betul.

Untuk melakukan ini, anda perlu menggunakan modul mod_rewrite, yang mungkin sudah dipasang pada hos web anda.

Pilihan + Ikut Pautan
Tulis semulaEngine dihidupkan
Tulis semula%% www.example.com [NC]
Tulis semula Peraturan ^ (. *) $ Http://example.org/$1 [R = 301, NC]

Berhati-hati!

Banyak panduan .htaccess dan mod_rewrite lain menawarkan beberapa variasi kod berikut untuk mencapai ini:

Pilihan + Ikut Pautan
Tulis semulaEngine dihidupkan
Tulis semula%! ^ Example.com [NC]
Tulis semula Peraturan ^ (. *) $ Http://example.org/$1 [R = 301, NC]

Adakah anda melihat masalahnya?

Ini mengalihkan semua subdomain ke domain primer. Jadi bukan hanya www.example.com, tetapi juga blog.example.com dan admin.example.com dan apa sahaja. Ini mungkin bukan tingkah laku yang anda mahukan.

Mengalihkan ke www

Tetapi bagaimana jika anda menggunakan subdomain www?

Anda mungkin harus membuat pengalihan untuk memastikan orang sampai ke tempat yang mereka cuba pergi. Terutama sekarang kerana lebih sedikit orang cenderung menambahkan www itu secara automatik ke awal URL.

Anda hanya membalikkan kod di atas.

Tulis semula Enjin Hidup
RewriteCond% ^ example.com [NC]
Tulis semula Peraturan ^ (. *) Http://www.website.com/$1 [R = 301, NC]

Sekiranya Saya Mengarahkan Kesalahan 404 ke Halaman Utama?

Beberapa panduan mengenai pengalihan .htaccess merangkumi arahan mengenai cara membuat 404 ralihan ke halaman utama.

Ini adalah contoh yang baik bagaimana hanya kerana anda dapat melakukan sesuatu, itu tidak bermaksud anda harus melakukan sesuatu.

Mengalihkan 404 ralat ke laman utama laman web adalah idea yang buruk. Ini membingungkan pelawat, yang tidak dapat mengetahui mengapa mereka melihat halaman depan laman web dan bukannya halaman ralat 404 yang betul.

Semua laman web harus mempunyai halaman 404 khusus yang menjelaskan dengan jelas kepada pengguna bahawa kandungannya tidak dapat dijumpai dan, idealnya, menawarkan beberapa ciri carian untuk membantu pengguna mencari apa yang mereka cari.

Mengapa Menggunakan .htaccess Bukannya Alternatif?

Anda boleh mengatur pengalihan dalam fail PHP, atau dengan jenis skrip sisi pelayan yang lain. Anda juga boleh memasangnya dalam Sistem Pengurusan Kandungan anda (yang pada dasarnya sama).

Tetapi menggunakan .htaccess biasanya merupakan jenis pengalihan terpantas. Dengan pengalihan berasaskan PHP, atau bahasa skrip sisi pelayan lain, seluruh permintaan mesti diselesaikan, dan skrip sebenarnya ditafsirkan sebelum mesej pengalihan dihantar ke penyemak imbas.

Dengan pengalihan .htaccess, pelayan bertindak balas secara langsung terhadap permintaan dengan mesej pengalihan. Ini jauh lebih pantas.

Anda harus perhatikan – beberapa sistem pengurusan kandungan sebenarnya menguruskan pengalihan dengan mengemas kini .htaccess secara teratur. Contohnya, WordPress mempunyai pengalihan semula plugin yang berfungsi dengan cara ini. (Dan sistem URL cantik WP juga melakukan ini.)

Ini memberi anda prestasi menggunakan .htaccess secara langsung, dan juga memberi anda kemudahan pengurusan dari dalam aplikasi anda.

Menyembunyikan Fail .htaccess Anda: Pertimbangan Keselamatan

Tidak ada sebab bahawa seseorang harus dapat melihat fail .htaccess anda dari web.

Lebih-lebih lagi, ada beberapa sebab besar yang semestinya anda tidak mahu orang melihat fail .htaccess anda.

Masalah terbesar adalah jika anda menggunakan fail .htpasswd, lokasinya dinyatakan dalam fail .htaccess. Mengetahui di mana mencarinya menjadikannya lebih mudah dicari.

Lebih-lebih lagi, sebagai peraturan umum, anda tidak mahu memberikan maklumat mengenai pelaksanaan anda kepada umum.

Tulis semula peraturan, tetapan direktori, keselamatan – semua perkara yang anda gunakan .htaccess – adalah amalan keselamatan yang baik untuk menyembunyikan semua ini di sebalik tabir di pelayan web anda. Semakin banyak penggodam dapat mengetahui tentang sistem anda, semakin mudah untuk mengompromikannya.

Sangat mudah untuk menyembunyikan fail .htaccess anda dari pandangan umum. Cukup tambahkan kod berikut:

perintah membenarkan, menolak
menafikan dari semua

Mengaktifkan jenis MIME

Jenis MIME adalah jenis fail. Mereka dipanggil jenis MIME kerana hubungan asalnya dengan e-mel (MIME adalah singkatan dari “Pelanjutan Mel Internet Serbaguna”). Mereka tidak hanya disebut “jenis fail” kerana MIME menyiratkan format tertentu untuk menentukan jenis fail.

Sekiranya anda pernah mengarang dokumen HTML, kemungkinan anda telah menentukan jenis MIME, walaupun anda tidak mengetahuinya:

Atribut type merujuk kepada jenis MIME tertentu.

Jenis MIME pada Pelayan Anda

Kadang-kadang anda akan mendapati bahawa pelayan web anda tidak dikonfigurasi untuk menyampaikan jenis fail tertentu. Ia tidak berfungsi – permintaan fail gagal.

Dalam kebanyakan kes, anda boleh menyelesaikan masalah ini dengan menambahkan jenis MIME ke fail .htaccess anda.

Teks AddType / richtext rtx

Arahan ini mempunyai tiga bahagian, masing-masing dipisahkan oleh ruang:

  • Komen AddType
  • Jenis MIME
  • Sambungan fail.

Sekiranya anda ingin mengaitkan beberapa sambungan fail yang berbeza dengan jenis MIME yang sama, anda boleh melakukannya pada satu baris.

Tambah gambar Jenis / jpeg jpeg jpg jpe JPG

Muat turun Paksa mengikut Jenis MIME

Sekiranya anda mahu semua pautan ke jenis fail tertentu dilancarkan sebagai muat turun, bukannya dibuka di penyemak imbas, anda melakukannya dengan aplikasi jenis MIME / octet-stream, seperti ini:

Aplikasi AddType / octet-stream pdf

Sekali lagi, anda boleh menentukan beberapa sambungan fail dengan satu jenis:

Aplikasi AddType / octet-stream pdf doc docx rtf

Senarai Sambungan Fail dan Jenis MIME

Berikut adalah senarai format fail dan jenis MIME yang tidak lengkap.

Sekiranya anda menguruskan laman web anda sendiri, dan anda tahu jenis fail yang anda terbitkan sumbernya, maka tidak perlu menyisipkan keseluruhan senarai ini ke dalam fail .htaccess anda.

Walau bagaimanapun, jika anda menjalankan laman web yang disumbangkan dan diterbitkan oleh banyak orang lain, anda mungkin hanya membenarkan sebilangan besar jenis fail dengan cara ini untuk memastikan tidak ada orang yang mempunyai pengalaman buruk.

Ini terutama berlaku jika anda menjalankan laman web di mana orang mungkin secara khusus berkongsi banyak fail, misalnya laman perkongsian fail, aplikasi pengurusan projek (di mana banyak fail akan sering dilampirkan ke projek), atau aplikasi web yang menangani e-mel.

Aplikasi AddType / macbinhex-40 hqx
Aplikasi AddType / netalive net
Aplikasi AddType / netalivelink nel
Aplikasi AddType / octet-stream bin exe
Aplikasi AddType / oda oda
Aplikasi AddType / pdf pdf
Aplikasi AddType / postscript ai eps ps
Aplikasi AddType / rtf rtf
Aplikasi AddType / x-bcpio bcpio
Aplikasi AddType / x-cpio cpio
Aplikasi AddType / x-csh csh
Aplikasi AddType / x-director dcr
Aplikasi AddType / pengarah-x dir
Aplikasi AddType / x-director dxr
Aplikasi AddType / x-dvi dvi
Aplikasi AddType / x-gtar gtar
Aplikasi AddType / x-hdf hdf
Aplikasi AddType / x-httpd-cgi cgi
Aplikasi AddType / lateks x-lateks
Aplikasi AddType / x-mif mif
Aplikasi AddType / x-netcdf nc cdf
Aplikasi AddType / x-onlive sds
Aplikasi AddType / x-sh sh
Aplikasi AddType / x-shar shar
Aplikasi AddType / x-sv4cpio sv4cpio
Aplikasi AddType / x-sv4crc sv4crc
Aplikasi AddType / x-tar tar
Aplikasi AddType / x-tcl tcl
Aplikasi AddType / x-tex tex
Aplikasi AddType / x-texinfo texinfo texi
Aplikasi AddType / x-troff t tr roff
Aplikasi AddType / x-troff-man man
Aplikasi AddType / x-troff-me saya
Aplikasi AddType / x-troff-ms ms
Aplikasi AddType / ustar x-ustar
Aplikasi AddType / src sumber x-wais
Aplikasi AddType / zip zip
Tambah Jenis audio / asas au
AddType audio / x-aiff aif aiff aifc
AddType audio / x-midi pertengahan
AddType ram audio / x-pn-realaudio
Tambah Jenis audio / x-wav wav
AddType image / gif gif GIF
Gambar AddType / ief ief
Tambah gambar Jenis / jpeg jpeg jpg jpe JPG
Tambah gambar Jenis / tiff tiff tif
Tambah gambar Jenis / x-cmu-raster ras
AddType image / x-portable-anymap pnm
AddType image / x-portable-bitmap pbm
AddType image / x-portable-graymap pgm
AddType image / x-portable-pixmap ppm
Tambah gambar Jenis / x-rgb rgb
Tambah gambar Jenis / x-xbitmap xbm
Tambah gambar Jenis / x-xpixmap xpm
Tambah gambar Jenis / x-xwindowdump xwd
Teks AddType / html html htm
Teks AddType / txt biasa
Teks AddType / richtext rtx
Teks AddType / nilai yang dipisahkan tab-tsv
Teks AddType / x-server-parsed-html shtml sht
Teks AddType / x-setext etx
Tambah video Jenis / mpeg mpeg mpg mpe
Tambah video Jenis / masa cepat qt mov
Tambah video Jenis / x-msvideo avi
Tambah video Jenis filem / filem x-sgi-movie
AddType x-world / x-vrml wrl

Sekat Pautan Panas

Hotlinking adalah amalan menghubungkan ke sumber dari domain lain dan bukannya memuat naik kandungan ke pelayan anda sendiri dan melayannya sendiri.

Katakan anda menjumpai gambar di laman web yang sangat anda sukai, dan anda mahu menggunakannya di laman web anda. Mengabaikan masalah hak cipta buat masa ini – anda boleh memuat turun gambar, memuat naiknya ke laman web anda, dan memasukkannya ke halaman anda seperti biasa.


Tetapi jika anda malas, atau cuba menjimatkan lebar jalur, atau tidak tahu cara memuat naik fail, anda boleh memasukkannya secara langsung dari fail asal.

Pautan panas itu. Ia juga berlaku dengan fail CSS dan JS, tetapi gambar adalah yang paling biasa.

Beberapa laman web / host tidak kisah sama sekali jika anda melakukan ini – anda boleh membuat pautan gambar dari Wikipedia tanpa ada yang marah. Dan beberapa laman web mendorongnya dalam satu bentuk atau yang lain.

Sebagai contoh, JQuery menyediakan perpustakaan JS mereka melalui CDN (Rangkaian Penghantaran Kandungan), jadi anda boleh membuat pautan panas terus ke dalamnya tanpa perlu memuat naiknya dan melayannya dari pelayan anda sendiri.

Tetapi banyak host web menganggap pautan panas sebagai bentuk lebar jalur dan pencurian sumber.

Yang pasti, jika anda menjalankan laman web yang agak kecil, anda tidak dapat memiliki ribuan atau puluhan ribu permintaan setiap hari untuk sumber yang tidak ada kaitan dengan pengunjung sebenar laman web anda.

Sekiranya anda menghadapi masalah dengan pautan panas, anda boleh mematikannya dengan beberapa peraturan mod_rewrite yang ditambahkan ke fail .htaccess anda.

Tulis semulaEngine dihidupkan
Tulis semula%! ^ $
Tulis semula%! ^ Http: // (www.)? Example.com /.*$ [NC]
Tulis semula Peraturan. (Gif | jpg | jpeg | png | js | css) $ – [F]

Pastikan anda menukar example.com pada baris ketiga ke nama domain sebenar anda. Ini akan menangkap permintaan yang tidak datang dari domain anda, dan kemudian memeriksa apakah ia sesuai dengan salah satu sambungan fail yang ditentukan di baris keempat. Sekiranya terdapat padanan, permintaan itu gagal.

Sekiranya anda ingin menambah sambungan fail lain, anda hanya boleh mengedit baris terakhir.

Melayan Kandungan Alternatif

Sekiranya anda ingin memberi tahu dunia mengapa pautan panas mereka tiba-tiba berhenti berfungsi, anda boleh mengganti gambar pautan panas dengan gambar khas dengan mesej seperti, “Kami benci pautan panas!” atau “Kandungan Asal Tersedia di http://example.com”.

Daripada gagal memenuhi permintaan, anda hanya mengalihkannya ke gambar “istimewa”:

Tulis semulaEngine dihidupkan
Tulis semula%! ^ $
Tulis semula%! ^ Http: // (www.)? Example.com /.*$ [NC]
Tulis semula Peraturan. (Gif | jpg) $ http://www.example.com/no-hotlinking.jpg [R, L]

Sekiranya anda benar-benar ingin bermain-main dengan orang lain, anda boleh mengalihkan fail JavaScript atau CSS ke alternatif khas yang mungkin mempunyai kesan buruk bagi penyambung panas. Walau bagaimanapun, ini tidak digalakkan.

Tulis semulaEngine dihidupkan
Tulis semula%! ^ $
Tulis semula%! ^ Http: // (www.)? Example.com /.*$ [NC]
Tulis semula Peraturan. (Js) $ http://www.example.com/break-everything.js [R, L]

Tulis semulaEngine dihidupkan
Tulis semula%! ^ $
Tulis semula%! ^ Http: // (www.)? Example.com /.*$ [NC]
Tulis semula Peraturan. (Css) $ http://www.example.com/super-ugly.css [R, L]

Lumpuhkan atau Aktifkan Indeks

Apa yang berlaku jika anda mempunyai direktori yang penuh dengan dokumen atau sumber lain, tidak ada file index.html, dan tidak ada halaman direktori lalai yang ditentukan dalam fail .htaccess?

Dalam banyak kes, hasilnya akan menjadi senarai direktori generik dari semua fail dalam direktori.

Betul. Sekiranya anda mempunyai folder di direktori hosting anda berlabel / gambar, dan tidak memiliki halaman index.html, ketika seseorang menavigasi ke http://yousite.com/images, mereka akan dapat melihat daftar semua gambar di tapak.

Itulah tingkah laku lalai bagi kebanyakan pelayan web, dan masuk akal dari sudut konsep awal laman web sebagai tempat menyimpan dan berkongsi dokumen. Tetapi ini bukan tingkah laku yang diinginkan untuk kebanyakan laman web.

Melumpuhkan Indeks

Banyak akaun hosting web akan mematikannya sebagai sebahagian daripada konfigurasi global mereka. Tetapi tidak semua berbuat demikian.

Sekiranya anda perlu mematikan senarai direktori yang dihasilkan secara automatik, melakukannya adalah mudah:

Pilihan -Indeks

Mendayakan Indeks

Sekiranya pelayan web anda telah melumpuhkan indeks sebagai sebahagian daripada konfigurasi global, tetapi anda menginginkannya, anda boleh mengaktifkannya dengan arahan di atas.

Pilihan + Indeks

Menyembunyikan beberapa fail dari Indeks

Sekiranya anda ingin menunjukkan senarai direktori, tetapi anda ingin menyembunyikan jenis fail tertentu dari senarai, anda juga boleh melakukannya.

Indeks Abaikan * .gif * .jpg

* Adalah penarik kad liar. Arahan di atas akan menyembunyikan semua fail yang mempunyai lanjutan .gif atau .jpg. Sekiranya anda ingin menjadi lebih spesifik, anda boleh:

Indeks Abaikan rahsia-gambar.jpg

Mengaktifkan CGI di mana sahaja

CGI, atau Common Gateway Interface, adalah kaedah sisi pelayan untuk memasukkan skrip bukan HTML (seperti Perl atau SSI) di halaman web.

Biasanya, skrip CGI disimpan dalam folder berlabel / cgi-bin. Pelayan web dikonfigurasi untuk memperlakukan sumber dalam direktori tersebut sebagai skrip, dan bukannya halaman.

Masalahnya adalah dua kali ganda: URL yang merujuk sumber CGI perlu ada / cgi-bin / di dalamnya, yang meletakkan perincian pelaksanaan ke dalam URL anda – anti-pola yang harus dihindari kerana beberapa sebab.

Laman web yang kompleks mungkin memerlukan struktur organisasi yang lebih baik daripada hanya mempunyai banyak skrip yang dimasukkan ke dalam folder tunggal / cgi-bin.

Sekiranya anda mahu pelayan web anda menguraikan skrip CGI di mana sahaja ia terdapat dalam struktur direktori anda, tambahkan sahaja yang berikut ke fail .htaccess anda:

TambahHandler cgi-script .cgi
Pilihan + ExecCGI

Sekiranya anda mempunyai peluasan fail lain yang ingin diproses sebagai skrip CGI, anda boleh menambahkannya pada baris pertama.

Skrip sebagai Kod Sumber

Selalunya, anda memasukkan skrip ke dalam direktori web anda kerana, anda ingin skrip tersebut dijalankan sebagai skrip.

Tetapi kadang-kadang bukan itu yang anda mahukan Kadang-kadang anda mahu memaparkan kod sumber kepada pengunjung awam, bukannya menjalankan skrip.

Ini mungkin berlaku jika anda menjalankan perkhidmatan perkongsian fail atau laman repositori kod, dan anda ingin orang melihat kod sumber dan dapat memuat turunnya, tetapi skrip sebenarnya adalah sebahagian dari fungsi laman web anda.

Ini dapat dilakukan dalam fail .htaccess anda dengan membuang pengendali skrip untuk jenis fail tertentu dan menggantinya dengan pengendali untuk teks.

BuangHandler cgi-script .pl .cgi .php .py
Teks AddType / plain .pl .cgi .php .py

Sebagai alternatif, seperti yang disebutkan sebelumnya, anda boleh memaksa fail dengan ekstensinos ini dimuat turun secara automatik, bukannya dipaparkan.

BuangHandler cgi-script .pl .cgi .php .py
Aplikasi AddType / octet-stream .pl .cgi .php .py

Berhati-hati dengan salah satu daripada ini. Sekiranya anda hanya mahu beberapa fail dipaparkan dengan cara ini, tetapi masih menggunakan skrip ini untuk seluruh laman web anda, anda akan mengalami masa yang buruk jika anda memasukkan arahan tersebut ke dalam fail .htaccess root web anda.

Amalan yang lebih baik adalah meletakkan semua skrip “display only” seperti itu ke dalam satu direktori, dan kemudian meletakkan arahan tersebut ke dalam file .htaccess di dalam folder itu.

Mengkonfigurasi Tetapan PHP

Kadang kala anda perlu mengubah tetapan PHP. Cara yang betul untuk melakukan ini adalah dalam fail bernama php.ini.

Sayangnya, tidak semua syarikat hosting web membenarkan pelanggan mereka mengedit fail php.ini. Ini terutama berlaku untuk penyedia hosting bersama, di mana satu pemasangan PHP mungkin menjalankan ratusan laman web.

Nasib baik, ada jalan penyelesaian – anda boleh memasukkan peraturan php.ini ke dalam fail .htaccess anda.

Sintaksnya seperti:

php_value [nama tetapan] [nilai]

Jadi, sebagai contoh, jika anda perlu meningkatkan ukuran muat naik fail maksimum (masalah biasa), semudah ini:

php_value upload_max_filesize 10M

Tidak semua tetapan PHP dapat ditentukan dalam fail .htaccess. Contohnya anda tidak boleh mematikan_kelas dengan cara ini.

Untuk senarai lengkap semua tetapan php.ini, lihat panduan arahan php.ini rasmi.

Cara Mencegah Akses ke PHP Anda merangkumi Fail

Terdapat beberapa cara untuk mengelakkan akses tanpa izin ke PHP anda merangkumi fail.

Pertama, anda boleh memasukkannya ke dalam direktori dan menetapkan fail .htaccess anda untuk menolak semua akses ke direktori tersebut (iaitu, Tolak dari semua jika anda menggunakan Apache HTTP Server). Sekiranya seseorang cuba mengakses fail, mereka akan menerima HTTP 403 Dilarang tindak balas.

Sebagai alternatif, anda boleh menyimpan fail ini di luar direktori dari mana fail laman web anda dilayan. Iaitu, jika pelayan web anda menyajikan fail yang terletak di / srv / rumah, anda boleh meletakkan fail termasuk anda di bawah / srv / rumah / termasuk. Ini menjadikan fail tidak dapat diakses melalui URL, walaupun Anda dapat mengakses dan menggunakannya seperti berikut: sertakan ‘PATH_TO_YOUR_FILE’

Akhirnya, anda boleh menentukan pemalar URL untuk fail yang anda mahu diakses:

tentukan (‘WEBSITE_URL’, ‘http://example.com’);

Kemudian, untuk fail yang tidak mahu diakses, sertakan cek berikut:

jika (! didefinisikan (‘WEBSITE_URL’)) {
pengepala ($ _ SERVER ["SERVER_PROTOCOL"] . "403 Terlarang");
jalan keluar;
}

Cara Mencegah Akses ke Fail PHP Anda

Cara untuk mencegah akses tidak sah ke fail ini adalah dengan mengedit fail .htaccess anda untuk menolak akses ke fail ini (iaitu, Tolak dari semua jika menggunakan Apache).

Cara Menetapkan Zon Waktu Pelayan Anda

Anda boleh menetapkan zon waktu pelayan anda dengan menentukannya dalam fail .htaccess anda. Untuk melakukannya, anda perlu menambahkan baris berikut:

php_value date.timezone ‘Wilayah / Zon’

Pastikan untuk mengganti Wilayah / Zon dengan zon waktu yang anda sukai.

Simpan fail anda. Anda boleh menguji perubahan anda dengan membuat fail ujian PHP yang mengandungi yang berikut di direktori yang sama dengan fail .htaccess:

<?php phpinfo (); ?>

Muatkan fail di penyemak imbas anda, dan cari nama arahan – lajur Nilai Tempatannya harus memaparkan tetapan zon waktu baru anda.

Bila Tidak Menggunakan .htaccess

Mengedit fail .htaccess anda untuk pertama kalinya dapat memberi anda perasaan sangat besar terhadap persekitaran hosting web anda. Anda tiba-tiba berasa seperti sysadmin.

Malangnya, kekuatan ini boleh sampai ke kepala anda, dan anda mungkin menggunakan fail .htaccess dengan cara yang bukan yang terbaik.

Apabila anda perlu melakukan sesuatu yang seperti pekerjaan .htaccess, pada dasarnya ada dua situasi di mana anda harus meletakkan arahan itu di tempat lain.

Lebih jauh ke Hulu

Seboleh-bolehnya, jenis arahan yang boleh anda letakkan dalam fail .htaccess lebih baik diletakkan di dalam fail httpd.conf, yang merupakan fail tetapan konfigurasi untuk keseluruhan pelayan.

Begitu juga, tetapan PHP lebih tepat berada dalam fail php.ini, dan kebanyakan bahasa lain mempunyai fail tetapan konfigurasi yang serupa.

Meletakkan arahan lebih jauh ke hulu, di httpd.conf, php.ini, atau file konfigurasi khusus bahasa yang lain membolehkan tetapan tersebut “dipanggang” ke mesin penghuraian pelayan web. Dengan .htaccess, arahan harus diperiksa dan ditafsirkan dengan setiap permintaan.

Sekiranya anda mempunyai laman web lalu lintas rendah dengan hanya sedikit arahan .htaccess, ini bukan masalah besar. Tetapi jika anda mempunyai banyak lalu lintas, dan banyak petunjuk, ketinggian prestasi benar-benar dapat meningkat.

Malangnya, banyak penyedia hosting yang dikongsi tidak membenarkan pelanggan mengakses fail httpd.conf atau php.ini, memaksa pengguna untuk bergantung pada fail .htaccess yang lebih perlahan.

Ini memberikan hukuman dua kali ganda jika dibandingkan dengan konfigurasi VPS tersuai kerana hosting bersama juga umumnya berkuasa rendah. Ini adalah salah satu sebab mengapa laman web dengan lalu lintas yang terhormat mungkin menggunakan rancangan VPS dan bukannya rancangan hosting bersama.

Lebih jauh ke hilir

Sekiranya anda menggunakan Sistem Pengurusan Kandungan (CMS) yang baik seperti WordPress atau Drupal, beberapa perkara yang mungkin anda lakukan dalam fail .htaccess – seperti mengalihkan URL atau menyekat alamat IP – boleh dilakukan dari dalam aplikasi.

Selalunya, ini berfungsi bersama-sama dengan fail .htaccess, dengan aplikasi menambah arahan secara program.

Apabila ini tersedia, biasanya lebih baik untuk menyelesaikan tugas-tugas ini dari dalam aplikasi, daripada mengedit sendiri fail .htaccess. Anda cenderung untuk memperkenalkan bug dan arahan yang tidak sesuai jika anda menggunakan plugin sumber terbuka yang diuji dengan baik.

Penyelesaian masalah

Berpusing-pusing dengan file .htaccess anda boleh jadi hebat – tetapi juga boleh menyebabkan pelayan anda merebut dan mula menyampaikan 500 mesej Ralat Pelayan Dalaman.

Berikut adalah beberapa idea untuk membantu anda menyelesaikannya.

Lakukan Satu Perkara Pada Satu Masa

Ini mesti berlaku tanpa kata, tetapi – sayangnya – itu adalah pelajaran yang harus kita pelajari berulang kali.

Lakukan satu perkara. Kemudian mengujinya. Kemudian buat perkara lain. Uji itu.

Sekiranya anda melakukan beberapa perkara sekaligus, dan kemudian sesuatu gagal, anda tidak akan tahu arahan mana yang menyebabkan masalah.

Sandarkan Fail Anda Sebelum Setiap Tindakan

Bersama dengan melakukan satu perkara pada satu masa, anda harus menyimpan fail anda di antara setiap perkara yang anda cuba. Arkib yang anda simpan perlu dikenang. Ini bukan Microsoft Word di mana anda boleh Urungkan – anda memerlukan salinan fail anda yang tersimpan.

Anda semestinya selalu mempunyai versi kerja terkini sekiranya anda merosakkan sesuatu. Selalu, selalu, selalu mempunyai kemampuan untuk mengembalikan ke versi yang berfungsi.

Ini paling mudah jika anda mempunyai sistem pengurusan sumber seperti git. Anda boleh melakukan selepas setiap perubahan, dan kembali jika anda menghadapi masalah.

Periksa Log Ralat

Sekiranya anda menghadapi masalah, dan anda menghadapi kesukaran untuk mengetahui sebabnya, periksa log ralat Apache anda. Ini sering memberikan maklumat berharga tentang tempat yang harus dicari.

Gunakan Forum Pembangun untuk Mendapatkan Bantuan

Forum pembangun dan Q&Laman web seperti StackOverflow adalah alat yang tidak ternilai untuk pemaju dan sysadmin yang paling berpengalaman. Dan jangan lupa Google. Selalunya, perbezaan antara master web yang buruk dan yang hebat adalah tidak mengetahui jawapannya, tetapi mengetahui di mana untuk mencari jawapannya.

Masalah .htaccess biasa

Kadang-kadang anda membuat typo. Kadang-kadang anda mempunyai masalah esoterik dan membingungkan yang disebabkan oleh pertemuan faktor yang tidak dapat diramalkan.

Sebilangan besar masalah, dan yang benar-benar mengecewakan, adalah masalah di tengah – masalah sederhana dan mudah setiap hari yang mudah diselesaikan jika anda baru tahu tentangnya.

Inilah beberapa daripadanya.

Nama Fail Buruk

Hanya ada satu cara untuk mengeja .htaccess – ia mesti diawali dengan titik, dan mestilah dengan huruf kecil.

Nampaknya bodoh, tetapi jika fail .htaccess anda tidak melakukan apa yang anda harapkan, itu adalah perkara pertama yang anda periksa.

.htaccess Cacat atau Sebilangan Cacat

Beberapa penyedia hosting bersama mematikan .htaccess sama sekali. Yang lain membenarkannya, tetapi menyekat penggunaan arahan tertentu – arahan itu hanya akan diabaikan jika disertakan.

Begitu juga, walaupun pada rancangan VPS atau pelayan khusus anda sendiri, .htaccess mungkin dilumpuhkan.

Sekiranya anda mempunyai akses ke fail httpd.conf, atau tetapan pelayan lain, anda boleh menyemaknya sendiri. Sekiranya anda menjumpai arahan AllowOverride None, anda dapati pelakunya. Gantikannya dengan AllowOverride All.

Sekiranya anda tidak mempunyai akses ke fail httpd.conf anda (kerana anda berada di hosting bersama, misalnya), anda mungkin perlu menghubungi sokongan teknikal syarikat hosting anda dan melihat apakah mereka dapat mengaktifkannya untuk anda, atau memberikan cadangan kepada anda untuk menyelesaikan apa yang anda cuba lakukan dengan cara yang berbeza.

Arahan yang Bercanggah atau Ditimpa

Sekiranya anda mempunyai banyak direktori bersarang, mungkin setiap satu mempunyai fail .htaccess sendiri. Setiap fail .htaccess dari root, melalui setiap direktori bersarang, berlaku – mereka dibaca secara tertib, turun dari pohon direktori.

Sekiranya anda menetapkan sesuatu di direktori root anda, dan kemudian sesuatu di subdirektori akan mengatasinya, arahan dalam fail .htaccess yang paling dekat dengan fail yang diminta akan diutamakan..

Lihat juga lembaran cheat mod-rewrite kami!

.htaccess Soalan Lazim

  • Apa itu fail .htaccess dalam SEO?

    Fail .htaccess dapat digunakan untuk melaksanakan tugas yang berkaitan dengan SEO seperti pengalihan. Pengalihan boleh digunakan untuk mengelakkan 404 mesej ralat dan membiarkan perayap mesin pencari mengetahui halaman mana yang harus mereka indeks. Anda juga dapat menetapkan tajuk HTTP untuk meningkatkan kelajuan pemuatan halaman, yang dapat meningkatkan peringkat mesin pencari anda.

    Di samping itu, anda boleh menggunakan .htaccess untuk menetapkan dasar garis miring yang konsisten. Ini, digabungkan dengan peraturan www dan HTTPS, dapat membantu anda mengelakkan kandungan pendua, yang boleh dikenakan penalti oleh Google.

  • Bagaimana saya membuat fail .htaccess di WordPress?

    Untuk membuat fail .htaccess di WordPress, gunakan kod ini:

    # MULAKAN WordPress

    Tulis semula Enjin Hidup
    Tulis semula Dasar /
    Tulis semula Peraturan ^ indeks \ .php $ – [L]
    Tulis semula%% {REQUEST_FILENAME}! -F
    Tulis semula%% {REQUEST_FILENAME}! -D
    Tulis semula Peraturan. /index.php [L]

    # TAMAT WordPress

    Perhatikan bahawa semasa anda memasang WordPress, fail .htaccess dibuat secara automatik. Walau bagaimanapun, plugin yang salah boleh merosakkan fail .htaccess, yang mengakibatkan perlunya membuat semula fail tersebut.

  • Mengapa saya tidak dapat melihat fail .htaccess saya?

    Sekiranya anda tidak dapat melihat fail .htaccess anda, itu kerana ia tidak ada atau tersembunyi. Untuk memaksa klien FTP anda untuk menunjukkan fail-fail ini, anda perlu mengubah tetapan pelanggan anda (iaitu, di FileZilla, pergi ke Pelayan > Paksa menunjukkan fail tersembunyi). Sekiranya anda membuat perubahan ini dan anda masih tidak melihat .htaccess, anda perlu membuatnya semula.

  • Berapa banyak fail .htaccess yang harus saya ada?

    Sebilangan besar laman web tidak memerlukan lebih daripada satu fail .htaccess. Ini kerana fail .htaccess membolehkan anda membuat perubahan konfigurasi pelayan berdasarkan setiap direktori. Namun, ketika menghosting banyak situs atau aplikasi yang kompleks, beberapa webmaster dapat menggunakan lebih dari satu file per situs untuk melaksanakan fungsi lanjutan.

  • Di manakah .htaccess di cPanel?

    Untuk melihat fail .htaccess, log masuk ke akaun cPanel anda. Kemudian pergi ke Fail > Pengurus Fail. Apabila diminta memilih direktori, pilih Akar Web dan pastikan bahawa Tunjukkan Fail Tersembunyi diperiksa. Anda kini boleh melihat fail .htaccess anda di cPanel.

  • Apakah penggunaan fail .htaccess dalam CodeIgniter?

    Fail .htaccess boleh digunakan bersama dengan CodeIgniter untuk membuat URL mesra mesin pencari. Secara lalai, URL CodeIgniter merangkumi fail index.php. Dengan menggunakan .htaccess, anda boleh menghapus fail index.php lalai itu sehingga tidak muncul di semua URL aplikasi anda.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map