Panduan Pemula untuk .htaccess untuk Desainer dan Pengembang
Di antara banyak berbagai alat untuk menyesuaikan server web Anda, file konfigurasi .htaccess adalah aset yang luar biasa. Kamu bisa cepat mereset jenis dokumen, mesin parsing, pengalihan URL, dan banyak fitur penting lainnya. Webmaster yang tidak terlalu teknis mungkin tidak masuk ke spesifik mengelola file .htaccess Anda sendiri. Tapi topiknya sendiri menarik dan perlu diselidiki.
Untuk artikel ini saya ingin menyajikan beberapa konsep yang lebih terarah untuk webmaster dan pengembang web. Siapa saja meluncurkan situs web mereka sendiri di server Apache pasti ingin memahami cara mengelola file .htaccess mereka. Saya t memberikan banyak penyesuaian dan itu dapat bekerja di semua bahasa web dari PHP ke Ruby.
Di bagian bawah posting ini saya telah menambahkan beberapa aplikasi web eksternal membantu pendatang baru menghasilkan file .htaccess mereka secara dinamis.
Mengapa menggunakan File .htaccess?
Ini adalah pertanyaan yang bagus dan mungkin kita harus mulai dengan menjawab “apa itu file .htaccess”? Ini adalah file konfigurasi yang sangat istimewa yang digunakan oleh server web Apache. File .htaccess dapat memberi tahu server web cara menyajikan berbagai bentuk informasi dan cara menangani berbagai tajuk permintaan HTTP.
Sungguh itu adalah sarana desentralisasi untuk mengatur pengaturan server web. Satu server fisik dapat menampung 50 situs web yang berbeda masing-masing dengan file .htaccess mereka sendiri. Ini memberi banyak kekuatan untuk webmaster, yang seharusnya tidak mungkin. Tetapi mengapa Anda harus menggunakannya?
Alasan terbesar adalah keamanan. Kamu bisa mengunci direktori tertentu atau membuatnya dilindungi kata sandi. Ini bagus untuk proyek pribadi atau Sistem Manajemen Konten baru di mana Anda menginginkan sedikit keamanan ekstra. Tetapi ada juga tugas umum seperti mengarahkan 404 pesan kesalahan ke halaman web tertentu. Ini hanya membutuhkan satu baris kode dan secara dramatis dapat memengaruhi reaksi pengunjung terhadap halaman yang hilang.
Sebenarnya tidak banyak yang bisa saya katakan untuk meyakinkan orang lain bahwa file .htaccess layak dipahami. Setelah Anda melihatnya beraksi, Anda dapat mengenali semua nilai yang berasal dari file konfigurasi mungil ini. Saya juga berharap sisa dari artikel ini dapat menyajikan beberapa topik mendalam untuk membawa webmaster memahami pengaturan konfigurasi .htaccess.
Izinkan / Tolak Akses
Dimungkinkan untuk mengenali pengunjung spam potensial dan menolak akses mereka ke situs web Anda. Ini bisa menjadi sedikit ekstrem, namun jika Anda tahu bahwa seseorang atau sekelompok orang telah menargetkan situs web Anda, ada beberapa opsi untuk dipilih. Anda dapat memilih referensi domain untuk menolak atau melarang pengunjung dengan alamat IP.
pesanan diizinkan, tolak deny dari 255.0.0.0 deny dari 123.45.6. izinkan dari semua
Kode sampel ini disalin dari Htaccess Guide karena merupakan templat yang sempurna untuk memulai. Perhatikan alamat IP ke-2 tidak memiliki integer ke-4. Blok kode ini akan menargetkan IP pertama (255.0.0.0) dan setiap IP dalam kisaran 123.45.6.0-255, lalu izinkan semua lalu lintas lainnya. Webmaster mungkin tidak menggunakan ini sesering teknik lainnya, tetapi akan sangat membantu untuk dipahami.
Cegah Daftar Direktori
Akan ada saat-saat ketika Anda memiliki direktori terbuka atur untuk memungkinkan penjelajahan secara default. Ini berarti pengguna dapat melihat semua file yang terdaftar di dalam struktur direktori internal, seperti folder gambar Anda. Beberapa webmaster tidak ingin mengizinkan daftar direktori dan untungnya potongan kode ini cukup mudah diingat.
Opsi -Indeks
Saya telah melihat jawaban ini disajikan berulang kali sepanjang Stack Overflow dan ini mungkin salah satu aturan .htaccess termudah untuk diingat.
Mungkin saja sebenarnya buat beberapa file .htaccess di dalam masing-masing direktori ini jadi mungkin salah satunya dilindungi kata sandi tetapi yang lain tidak. Dan Anda masih bisa menyimpannya Opsi -Indeks sehingga pengunjung tidak dapat menelusuri situs web / gambar / folder Anda.
Perlindungan Kata Sandi
Melindungi direktori Anda dengan kata sandi adalah prosedur yang sangat umum untuk mengamankan area administrasi dan folder lain yang penting untuk situs web Anda. Terkadang Anda hanya ingin menawarkan akses ke sekelompok kecil orang. Kata sandi lain kali adalah untuk mencegah peretas mendapatkan akses ke panel administrasi situs web Anda. Tapi bagaimanapun juga itu adalah solusi yang sangat kuat untuk sejumlah masalah.
Ada panduan praktis tentang perlindungan kata sandi yang menguraikan cuplikan kode penting. Kamu akan membutuhkan menghasilkan file kata sandi yang menyimpan kredensial nama pengguna / kata sandi. Ini adalah bagaimana Apache dapat memeriksa terhadap apa yang dimasukkan pengguna untuk melihat apakah mereka harus diberikan akses. Dan perhatikan bagaimana Anda perlu membuat sampel untuk nama pengguna dan kata sandi Anda.
Saya akan merekomendasikan menggunakan generator htpassword ini sehingga Anda dapat menghemat sedikit waktu. Sintaks akan selalu keluar dengan sempurna dan Anda tidak perlu mengenkripsi kata sandi sendiri. Dan opsi hebat lainnya adalah melindungi seluruh daftar direktori dengan kata sandi. Kita dapat melihat contoh ini di galeri cuplikan kode CSS-Trik.
AuthType Basic AuthName "Area Ini Dilindungi Kata Sandi" AuthUserFile /full/path/to/.htpasswd Memerlukan pengguna yang valid
Keamanan untuk WordPress
Untuk memanfaatkan ide perlindungan kata sandi ini, mari kita tunjukkan contoh dunia nyata. Cuplikan kode yang lebih rumit ini akan melakukannya memaksa otentikasi pengguna untuk siapa saja yang mengakses file WordPress wp-login.php. Anda akan menemukan sumber asli di Ask Apache yang memiliki banyak potongan perlindungan WordPress lainnya.
Tolak Pesanan, Bolehkan Tolak dari Semua Memuaskan Segala AuthName "Dilindungi oleh AskApache" AuthUserFile /web/askapache.com/.htpasswda1 AuthType Dasar Memerlukan pengguna yang valid
Dan jika Anda akan mengikuti aturan-aturan .htaccess ini mungkin juga membantu melindungi kata sandi area admin. Biasanya wp-login.php file akan mendapatkan hit terbanyak dari orang yang mencoba memaksa masuk ke sistem Anda. Jadi, bahkan hanya kode contoh di atas akan menjadi lebih dari cukup menambah keamanan untuk situs web WordPress Anda.
Aturan Menulis Ulang URL HTTP
Menulis ulang URL mungkin salah satu kegunaan yang paling umum untuk file .htaccess. Instalasi default WordPress sebenarnya bisa menghasilkan file .htaccess langsung dari panel administrasi. Ini memungkinkan Anda membuat URL cantik yang tidak memiliki struktur .php? P = 1.
Saya ingin melihat contoh penulisan ulang ini di cara memperbarui garis bawah ke garis putus-putus sejak itu mengandung banyak elemen yang paling penting.
Pilihan + FollowSymLinks RewriteEngine Pada RewriteBase / RewriteRule! \. (Html | php) $ - [S = 4] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] *) _ ( [^ _] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4- $ 5 [E = uscor: Ya] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _ ] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4 [E = uscor: Ya] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ (. *) $ $ 1- $ 2- $ 3 [E = uscor: Ya] RewriteRule ^ ([^ _] *) _ (. *) $ $ 1- $ 2 [E = uscor: Ya] RewriteCond% ENV: uscor ^ Ya $ RewriteRule (. *) Http: //d.com/$1 [R = 301, L]
Menulis Ulang Mesin dan RewriteBase paling selalu dapat diatur ke nilai-nilai yang tepat ini. Tetapi Anda membutuhkan RewriteEngine yang dihidupkan agar hal lain dapat berfungsi. Ada banyak panduan online yang menjelaskan cara mengaktifkan mod_rewrite dan penyedia hosting Anda juga dapat membantu.
Perhatikan sintaks mengikuti pola RewriteRules di atas. Aturan-aturan ini digunakan untuk cocok dengan kasus yang sedang dikirim sebagai permintaan HTTP. Ini dijawab oleh RewriteRule yang dalam hal ini mengalihkan semua ke domain d.com. Tanda kurung akhir seperti [R = 301, L] disebut flag penulisan ulang yang penting, tetapi lebih merupakan topik lanjutan.
Sintaks mod_rewrite jelas sedikit membingungkan tetapi jangan diintimidasi! Cuplikan dapat terlihat jauh lebih mudah dalam contoh lain.
Ketika baru memulai, saya harus merekomendasikan webapp mod_rewrite ini yang membantu Anda menghasilkan sampel kode menggunakan URL nyata. Ini adalah alat yang brilian karena Anda dapat mencari berbagai item di sintaks untuk melihat apa yang sebenarnya mereka lakukan di aturan Menulis Ulang. Berikut ini adalah tutorial hebat lainnya dengan contoh sederhana untuk dipelajari:
RewriteRule ^ dir / ([0-9] +) /? $ /Index.php?id=$1 [L]
Jangan mencoba membebani diri Anda dengan semua ini sekaligus. Butuh waktu lebih dari 3-4 bulan untuk benar-benar mulai memahami cara menulis ulang URL dengan [0-9a-zA-Z] + dan pola serupa. Teruslah berlatih dan pada waktunya saya berjanji Anda akan mendapatkan hal-hal ini seperti pengetahuan yang masuk akal.
Cuplikan Kode untuk Webmaster
Saya suka cuplikan yang mudah digunakan dan saya ingin menyatukan kumpulan kecil kode .htaccess terkait ini untuk para webmaster. Masing-masing ide ini dapat masuk dengan baik ke file .htaccess Anda sendiri bersama dengan blok kode lainnya. Sebagian besar cuplikan ini cocok untuk Anda memecahkan masalah atau perbaikan cepat di lingkungan server web Anda. Bayangkan pengaturan Apache yang sempurna untuk webmaster baru yang baru saja mulai online.
Pengaturan DirectoryIndex
Perintah untuk DirectoryIndex digunakan secara umum dalam satu baris. Anda dapat memberi tahu Apache dokumen mana yang semula harus diperlakukan sebagai “utama” dokumen. Secara default ini akan item target seperti index.html, index.php, index.asp, dan file indeks lainnya. Tetapi menggunakan potongan kode ini yang telah saya salin di bawah, Anda memiliki kemampuan untuk membuat dokumen root ini apa pun yang Anda suka.
DirectoryIndex index.html index.cgi index.php
Urutan dokumen harus dimulai dengan yang paling penting dan bergerak melalui peringkat ke yang paling tidak penting. Jadi jika kita tidak memiliki file HTML atau CGI maka fallback akan masuk ke index.php. Dan Anda bahkan bisa memberi nama file-file ini home.php atau someotherfile.php dan itu semua sintaks yang valid.
Paksa Subdomain WWW atau Non-WWW
Google dapat bekerja dengan kedua versi domain situs web Anda jika Anda tidak menentukannya www.domain.com atau hanya domain.com. Dalam pengalaman saya itu adalah praktik terbaik untuk pilih salah satu dari ini dan atur sebagai satu-satunya pilihan via .htaccess. Maka Google tidak akan mengindeks berbagai URL dengan beberapa menunjuk ke subdomain WWW sementara yang lain tidak.
# Force WWW Subdomain Menulis Ulang Di RewriteCond% HTTP_HOST ^ domain.com [NC] RewriteRule ^ (. *) $ Http://www.domain.com/$1 [L, R = 301] # Tidak Ada Subdomain RewriteEngine Di RewriteCond% HTTP_HOST! ^ Domain.com $ [NC] RewriteRule ^ (. *) $ Http://domain.com/$1 [L, R = 301]
Cuplikan kode ini berasal dari arsip CSS-Trik dan memberikan solusi yang sangat praktis. Anda harus memperbarui domain menjadi apa pun yang Anda butuhkan untuk situs web Anda sendiri. Kalau tidak, akan ada masalah dan Anda akan segera menyadarinya! Tapi saya sangat mendukung memaksa salah satu dari dua opsi ini dan itu ada di bagian atas daftar tugas saya setelah meluncurkan situs web baru.
Paksa Unduhan File Media
Cuplikan lain yang cukup penting memungkinkan untuk memaksa jenis media tertentu unduh alih-alih ditampilkan di peramban. Segera saya bisa memikirkan dokumen PDF dan file audio MP3 yang dapat disajikan dalam format yang dapat diunduh, tetapi bagaimana Anda melakukannya pastikan mereka dapat diunduh? Saya menemukan artikel serupa yang diterbitkan pada Panduan Htaccess yang menguraikan potongan kode ini.
Aplikasi AddType / octet-stream .zip .mp3 .mp4
Jangan ragu untuk memasukkan lebih banyak tipe file di akhir baris ini. Semua format media yang menggunakan jenis MIME octet-stream akan dapat diunduh. Memaksa ini melalui .htaccess adalah rute yang sangat langsung untuk memastikan orang tidak dapat melihat file-file ini di browser.
Dokumen Galat Ubahsuaian
Bagian terakhir terakhir yang ingin saya tambahkan adalah templat lengkap dokumen kesalahan khusus. Biasanya kode angka ini hanya terlihat di ujung server. Tetapi ada banyak dokumen kesalahan ini yang harus Anda ketahui. Beberapa contoh mungkin 403/404 kesalahan dan 301 redirect.
Templat kode kesalahan ini mulai dari 100 dan bergerak ke atas hingga 500 kesalahan. Harap dicatat bahwa Anda jelas tidak membutuhkan semua ini. Hanya kesalahan paling umum yang diperlukan, dan mungkin beberapa cuplikan tidak jelas jika Anda merasa perlu.
Jika Anda tidak mengenali kode, cari saja di Wikipedia untuk mendapatkan pemahaman yang lebih baik.
ErrorDocument 100 / 100_CONTINUE ErrorDocument 101 / 101_SWITCHING_PROTOCOLS ErrorDocument 102 / 102_PROCESSING ErrorDocument 200 / 200_OK ErrorDocument 201 / 201_CREATED ErrorDocument 202 / 202_ACCEPTED ErrorDocument 203 / 203_NON_AUTHORITATIVE ErrorDocument 204 / 204_NO_CONTENT ErrorDocument 205 / 205_RESET_CONTENT ErrorDocument 206 / 206_PARTIAL_CONTENT ErrorDocument 207 / 207_MULTI_STATUS ErrorDocument 300 / 300_MULTIPLE_CHOICES ErrorDocument 301 / 301_MOVED_PERMANENTLY ErrorDocument 302 / 302_MOVED_TEMPORARILY ErrorDocument 303 / 303_SEE_OTHER ErrorDocument 304 / 304_NOT_MODIFIED ErrorDocument 305 / 305_USE_PROXY ErrorDocument 307 / 307_TEMPORARY_REDIRECT ErrorDocument 400 / 400_BAD_REQUEST ErrorDocument 401 / 401_UNAUTHORIZED ErrorDocument 402 / 402_PAYMENT_REQUIRED ErrorDocument 403 / 403_FORBIDDEN ErrorDocument 404 / 404_NOT_FOUND ErrorDocument 405 / 405_METHOD_NOT_ALLOWED ErrorDocument 406 / 406_NOT_ACCEPTABLE ErrorDocument 407 / 407_PROXY_AUTHENTICATION_REQUIRED ErrorDocument 408 / 408_REQUEST_TIME_OUT ErrorDocument 409 / 409_CONFLICT ErrorDocument 410 / 410_GONE ErrorDocument 411 / 411_LENGTH_REQUIRED ErrorDocument 412 / 412_PRECONDITION_FAILED ErrorDocument 413 / 413_REQUEST_ENTITY_TOO_LARGE ErrorDocument 414 / 414_REQUEST_URI_TOO_LARGE ErrorDocument 415 / 415_UNSUPPORTED_MEDIA_TYPE ErrorDocument 416 / 416_RANGE_NOT_SATISFIABLE ErrorDocument 417 / 417_EXPECTATION_FAILED ErrorDocument 422 / 422_UNPROCESSABLE_ENTITY ErrorDocument 423 / 423_LOCKED ErrorDocument 424 / 424_FAILED_DEPENDENCY ErrorDocument 426 / 426_UPGRADE_REQUIRED ErrorDocument 500 / 500_INTERNAL_SERVER_ERROR ErrorDocument 501 / 501_NOT_IMPLEMENTED ErrorDocument 502 / 502_BAD_GATEWAY ErrorDocument 503 / 503_SERVICE_UNAVAILABLE ErrorDocument 504 / 504_GATEWAY_TIME_OUT ErrorDocument 505 / 505_VERSION_NOT_SUPPORTED ErrorDocument 506 / 506_VARIANT_ALSO_VARIES ErrorDocument 507 / 507_INSUFFICIENT_STORAGE ErrorDocument 510 / 510_NOT_EXTENDED
Aplikasi Web .htaccess online
- Pembuat Htaccess
- .htaccess redirect generator
- .htaccessEditor - Buat File .htaccess
- Mod Rewrite Generator oleh GenerateIt.net
Sumber Daya Berguna Lainnya
- .htaccess di Httpd Wiki
- Dokumentasi htaccess resmi Apache
- Tanyakan Apache Blog - Arsip Htaccess
- Panduan Ultimate untuk htaccess dan mod_rewrite
- Semua yang Pernah Ingin Anda Ketahui tentang Aturan Mod_Rewrite tetapi Takut Bertanya
Pikiran terakhir
Ada begitu banyak sumber daya online yang membahas banyak file .htaccess. Artikel dan webapp saya yang ditautkan adalah tempat yang bagus untuk memulai. Tetapi teruslah berlatih ide-ide baru dan jangan takut menguji cuplikan kode. Selama Anda memiliki file cadangan maka Anda dapat menguji apa pun yang Anda suka dan itu adalah pengalaman belajar yang menyenangkan.
Jika Anda memiliki ide atau saran lain tentang manajemen .htaccess, silakan berbagi dengan kami di area posting diskusi di bawah ini.