Panduan Permulaan untuk .htaccess untuk Pereka dan Pemaju
Di antara pelbagai alat untuk menyesuaikan pelayan web anda, fail konfigurasi .htaccess adalah aset yang luar biasa. Awak boleh cepat menetapkan semula jenis dokumen, enjin parsing, pengalihan URL, dan banyak ciri penting lain. Webmaster yang tidak terlalu teknikal mungkin tidak dapat menerapkan spesifik pengurusan fail .htaccess anda sendiri. Tetapi topik itu sendiri menarik dan patut disiasat.
Untuk artikel ini saya ingin mempersembahkan beberapa konsep yang lebih bermotivasi untuk webmaster dan web developer. Sesiapa sahaja melancarkan laman web mereka sendiri pada pelayan Apache pasti akan mahu memahami bagaimana untuk menguruskan fail .htaccess mereka. Ia menyediakan banyak customizability dan ia boleh berfungsi di mana-mana bahasa web dari PHP ke Ruby.
Di bahagian bawah pos ini saya telah menambah beberapa webapp luar untuk membantu pendatang baru menjana fail .htaccess mereka secara dinamik.
Kenapa menggunakan Fail .htaccess?
Ini adalah soalan yang hebat dan mungkin kita harus mulakan dengan menjawabnya “apakah fail .htaccess”? Ia adalah fail konfigurasi yang sangat istimewa yang digunakan oleh pelayan web Apache. Fail .htaccess boleh memberitahu pelayan web bagaimana untuk membentangkan pelbagai bentuk maklumat dan cara mengendalikan pelbagai permintaan permintaan HTTP.
Benar-benar ia adalah satu cara desentralisasi untuk mengatur tetapan pelayan web. Satu pelayan fizikal boleh memegang 50 laman web yang berbeza setiap satunya dengan fail .htaccess mereka sendiri. Ia memberikan banyak kuasa kepada webmaster, yang mungkin tidak mungkin. Tetapi mengapa anda perlu menggunakannya?
Alasan terbesar ialah keselamatan. Awak boleh mengunci direktori tertentu atau menjadikannya dilindungi kata laluan. Ini bagus untuk projek swasta atau Sistem Pengurusan Kandungan baru yang anda mahukan keselamatan tambahan sedikit. Tetapi ada juga tugas biasa seperti mengalihkan 404 mesej ralat ke laman web tertentu. Ini hanya mengambil satu baris kod dan ia secara dramatik boleh mempengaruhi bagaimana pengunjung bertindak balas terhadap halaman yang hilang.
Sejujurnya tidak banyak yang boleh saya katakan untuk meyakinkan orang lain bahawa fail .htaccess bernilai pemahaman. Setelah anda melihatnya dalam tindakan maka anda dapat mengenali semua nilai yang berasal dari file config kecil ini. Juga saya berharap seluruh artikel ini dapat membentangkan beberapa topik yang membangkitkan perhatian untuk membawa para webmaster ke dalam cahaya mengurus konfigurasi .htaccess.
Benarkan / Menolak Akses
Adalah mungkin untuk mengenali pengunjung spam yang berpotensi dan menafikan mereka akses ke laman web anda. Ini boleh jadi sedikit melampau, tetapi jika anda tahu bahawa seseorang atau sekumpulan orang telah mensasarkan laman web anda terdapat beberapa pilihan untuk dipilih. Anda boleh memilih rujukan domain untuk menafikan atau mengharamkan pengunjung dengan alamat IP.
perintah membenarkan, menafikan menolak dari 255.0.0.0 menafikan dari 123.45.6. membenarkan semua
Kod sampel ini disalin dari Panduan Htaccess kerana ia adalah templat yang sempurna untuk bermula. Perhatikan alamat IP kedua hilang integer ke-4. Blok kod ini akan menyasarkan IP pertama (255.0.0.0) dan setiap IP dalam lingkungan 123.45.6.0-255, kemudian benarkan semua lalu lintas yang lain. Webmaster mungkin tidak menggunakan ini seberapa kerap teknik lain tetapi berguna untuk difahami.
Mencegah Penyenaraian Direktori
Akan ada masa apabila anda mempunyai direktori terbuka yang ada ditetapkan untuk membenarkan menyemak imbas secara lalai. Ini bermakna pengguna boleh melihat semua fail yang disenaraikan di dalam struktur direktori dalaman, seperti folder imej anda. Sesetengah webmaster tidak mahu membenarkan penyenaraian direktori dan ternyata coretan kod itu cukup mudah diingat.
Pilihan -Index
Saya telah melihat jawapan ini dibentangkan banyak kali sepanjang Stack Overflow dan mungkin salah satu peraturan .htaccess yang paling mudah untuk diingati.
Ia mungkin sebenarnya membuat fail .htaccess berganda di dalam setiap direktori ini jadi mungkin salah satu daripada mereka dilindungi kata laluan tetapi yang lain tidak. Dan anda masih boleh menyimpannya Pilihan -Index supaya pelawat tidak dapat melayari laman web / imej / folder anda.
Perlindungan Kata Laluan
Melindungi kata laluan direktori anda adalah prosedur yang sangat biasa untuk mendapatkan kawasan pentadbiran dan folder lain yang penting ke laman web anda. Kadang-kadang anda hanya ingin menawarkan akses kepada sekumpulan kecil orang. Kali kata laluan lain adalah untuk menghalang penggodam dari mendapat akses ke panel pentadbiran tapak web anda. Tetapi sama ada ia adalah penyelesaian yang sangat kuat untuk sejumlah masalah.
Terdapat panduan berguna mengenai perlindungan kata laluan yang menggariskan coretan kod penting. Anda perlu menjana fail kata laluan yang menyimpan kelayakan nama pengguna / kata laluan. Inilah cara Apache dapat memeriksa terhadap input pengguna untuk melihat apakah mereka harus diberi akses. Dan perhatikan bagaimana anda perlu menghasilkan sampel untuk nama pengguna dan kata laluan anda.
Saya akan mengesyorkan menggunakan penjana htpassword ini supaya anda boleh menyimpan sedikit masa. Sintaks ini akan selalu sempurna dan anda tidak perlu menyulitkan kata laluan anda sendiri. Dan pilihan lain yang lain ialah kata laluan melindungi senarai keseluruhan direktori. Kita boleh melihat contoh ini dalam galeri kod CSS CSS Trik.
AuthType Basic AuthName "Kawasan ini adalah Kata Laluan Dilindungi" AuthUserFile /full/path/to/.htpasswd Memerlukan pengguna yang sah
Keselamatan untuk WordPress
Untuk meletakkan idea perlindungan kata laluan ini untuk digunakan dengan baik, mari kita memaparkan contoh dunia sebenar. Coretan kod yang lebih rumit ini akan memaksa pengesahan pengguna untuk sesiapa sahaja yang mengakses fail wp-login.php WordPress. Anda akan menemui sumber asal pada Ask Apache yang mempunyai coretan perlindungan WordPress yang lain.
Perintah Menolak, Tolong Bertolak daripada Semua Memuaskan Sebarang AuthName "Dilindungi Oleh AskApache" AuthUserFile /web/askapache.com/.htpasswda1 AuthType Basic Memerlukan pengguna sah
Dan jika anda akan mengikuti peraturan .htaccess ini, ia mungkin juga membantu kata laluan untuk melindungi kawasan admin. Biasanya wp-login.php fail akan mendapat hit yang paling banyak daripada orang yang cuba menjerat masuk ke dalam sistem anda. Jadi, sekadar kod sampel di atas akan menjadi lebih daripada sekadar keselamatan tambahan untuk laman web WordPress anda.
Aturan Rewrite URL HTTP
URL penulisan semula mungkin merupakan salah satu kegunaan yang paling biasa untuk fail .htaccess. Pemasangan lalai WordPress sebenarnya menjana fail .htaccess terus dari panel pentadbiran. Ini membolehkan anda membuat URL cantik yang tidak mempunyai struktur .php? P = 1.
Saya mahu melihat contoh penulisan semula ini bagaimana untuk mengemas kini garis bawah dengan sengkang sejak ia mengandungi banyak elemen yang paling penting.
Pilihan + FollowSymLinks RewriteEngine Pada RewriteBase / RewriteRule! \. (Html | php) $ - [S = 4] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] *) _ [^ _] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4- $ 5 [E = uscor: Yes] RewriteRule ^ ([^ _] * $ * 1- $ 2- $ 3- $ 4 [E = uscor: Yes] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ (. *) $ 3 [uscor: Yes] RewriteRule ^ ([^ _] *) _ (. *) $ $ 1- $ 2 [E = uscor: Yes] RewriteCond% ENV: uscor ^ Yes $ RewriteRule (. *) Http: //d.com/$1 [R = 301, L]
RewriteEngine dan RewriteBase boleh selalu ditetapkan kepada nilai-nilai yang tepat ini. Tetapi anda memerlukan RewriteEngine dihidupkan untuk apa-apa lagi untuk berfungsi. Terdapat banyak panduan dalam talian menerangkan bagaimana membolehkan mod_rewrite dan penyedia hosting anda juga boleh membantu.
Perhatikan sintaks berikut mengikut corak RewriteRules di bahagian atas. Peraturan ini digunakan untuk perlawanan terhadap kes yang sedang dihantar sebagai permintaan HTTP. Ini dijawab oleh RewriteRule yang dalam hal ini mengalihkan segalanya ke domain d.com. Tanda kurung yang berakhir seperti [R = 301, L] dipanggil bendera penulisan semula yang penting, tetapi lebih banyak topik lanjutan.
Sintaks mod_rewrite pastinya agak mengelirukan tetapi jangan terintimidasi! Coretan boleh kelihatan lebih mudah dalam contoh lain.
Apabila baru bermula, saya perlu mengesyorkan webapp mod_rewrite ini yang membantu anda menghasilkan sampel kod menggunakan URL sebenar. Ini adalah alat yang bijak kerana anda boleh melihat pelbagai perkara dalam sintaks untuk melihat apa yang sebenarnya mereka lakukan dalam peraturan Rewrite. Berikut adalah tutorial hebat lain dengan contoh yang lebih mudah untuk belajar:
RewriteRule ^ dir / ([0-9] +) /? $ /Index.php?id=$1 [L]
Jangan cuba untuk membebaskan diri anda pada semua ini sekaligus. Saya mengambil masa lebih dari 3-4 bulan untuk benar-benar mula memahami bagaimana menulis semula URL dengan [0-9a-zA-Z] + dan corak serupa. Teruskan berlatih dan pada waktunya saya berjanji akan mendapatkan barangan ini seperti pengetahuan umum.
Kod Snip untuk Webmaster
Saya suka coretan yang mudah digunakan dan saya ingin mengumpulkan koleksi kecil ini .htaccess yang berkaitan untuk webmaster. Setiap idea ini boleh masuk dengan baik ke dalam fail .htaccess anda sendiri bersama-sama dengan blok kod lain. Kebanyakan coretan ini bagus untuk menyelesaikan masalah atau perbaikan pantas dalam persekitaran pelayan web anda. Bayangkan persediaan Apache yang sempurna untuk webmaster baru yang baru dimulakan dalam talian.
Menetapkan DirectoryIndex
Perintah untuk DirectoryIndex digunakan secara umum dalam satu baris. Anda boleh beritahu Apache yang dokumennya harus dianggap sebagai permulaan “utama” dokumen. Secara lalai ini akan item sasaran seperti index.html, index.php, index.asp, dan fail indeks lain. Tetapi dengan menggunakan coretan kod ini yang saya telah disalin di bawah, anda mempunyai keupayaan untuk membuat dokumen akar ini apa sahaja yang anda suka.
DirectoryIndex index.html index.cgi index.php
Perintah dokumen harus bermula dengan yang paling penting dan bergerak melalui pangkat ke yang paling tidak penting. Jadi jika kita tidak mempunyai fail HTML atau CGI maka fallback akan pergi ke index.php. Dan anda juga boleh menamakan fail ini home.php atau someotherfile.php dan ia adalah semua sintaks yang sah.
Angkatan WWW atau Subdomain Bukan WWW
Google boleh bekerja dengan kedua-dua versi domain tapak web anda jika anda tidak menentukan www.domain.com atau hanya domain.com. Dalam pengalaman saya, amalan terbaik pilih salah satu daripada ini dan tetapkannya sebagai satu-satunya pilihan melalui .htaccess. Kemudian Google tidak akan mengindex pelbagai URL dengan menunjuk ke subdomain WWW sementara yang lain tidak.
# Force WWW Subdomain RewriteEngine On RewriteCond% HTTP_HOST ^ domain.com [NC] RewriteRule ^ (. *) $ Http://www.domain.com/$1 [L, R = 301] # No Subdomain RewriteEngine On RewriteCond% HTTP_HOST! ^ Domain.com $ [NC] RewriteRule ^ (. *) $ Http://domain.com/$1 [L, R = 301]
Coretan kod ini berasal dari arkib CSS-Tricks dan menyediakan penyelesaian yang sangat berguna. Anda perlu mengemas kini domain menjadi apa sahaja yang anda perlukan untuk laman web anda sendiri. Jika tidak akan ada masalah dan anda akan melihatnya dengan segera! Tetapi saya sangat menyokong memaksa salah satu daripada dua pilihan ini dan ia adalah di bahagian atas senarai tugas saya selepas melancarkan laman web baru.
Muat turun Muat Turun Fail Media
Satu lagi coretan yang agak penting membolehkan memaksa jenis media tertentu muat turun bukannya dipaparkan dalam penyemak imbas. Segera saya boleh memikirkan dokumen PDF dan fail audio MP3 yang mungkin dipaparkan dalam format yang boleh dimuat turun, tetapi bagaimana anda pastikan mereka boleh dimuat turun? Saya dapati artikel serupa yang disiarkan di Panduan Htaccess yang menggariskan coretan kod ini.
Aplikasi AddType / octet-stream .zip .mp3 .mp4
Jangan ragu untuk memasukkan lebih banyak filetype pada akhir baris ini. Semua format media menggunakan jenis MIME aliran oktet akan dimuat turun. Memaksa ini melalui .htaccess adalah laluan yang sangat langsung untuk memastikan orang tidak dapat melihat fail ini dalam penyemak imbas.
Dokumen Ralat Tersuai
Satu bahagian akhir terakhir yang saya mahu tambahkan adalah templat penuh bagi dokumen ralat tersuai. Biasanya kod nombor ini hanya dilihat pada hujung pelayan. Tetapi terdapat banyak dokumen ralat yang harus anda kenali. Beberapa contoh mungkin 403/404 ralat dan juga Pengalihan 301.
Templat kod ralat ini bermula pada 100 dan bergerak ke atas menjadi 500 kesilapan. Sila ambil perhatian bahawa anda jelas tidak memerlukan semua ini. Hanya kesilapan yang paling biasa diperlukan, dan mungkin beberapa coretan yang tidak jelas jika anda merasakan keperluan.
Sekiranya anda tidak mengenali kod itu, lihatlah 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 RalatDocument 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
Webapps .htaccess dalam talian
- Pembina Htaccess
- .htaccess generator pengalihan
- .htaccessEditor - Buat fail .htaccess
- Mod Rewrite Generator oleh GenerateIt.net
Sumber Berguna Lain
- .htaccess dalam Wiki Httpd
- Dokumentasi Apache htaccess rasmi
- Tanya Apache Blog - Htaccess Archives
- Panduan Ultimate untuk htaccess dan mod_rewrite
- Segala-galanya yang anda ingin tahu mengenai peraturan Mod_Rewrite tetapi takut untuk bertanya
Pemikiran Akhir
Terdapat banyak sumber dalam talian yang membincangkan fail .htaccess dalam talian. Artikel berkaitan dan aplikasi web saya adalah tempat yang bagus untuk bermula. Tetapi terus mengamalkan idea-idea baru dan jangan takut menguji coretan kod. Selagi anda mempunyai fail sandaran maka anda boleh menguji apa sahaja yang anda suka dan pengalaman pembelajaran yang menyeronokkan.
Sekiranya anda mempunyai idea atau cadangan lain mengenai pengurusan .htaccess sila kongsi bersama kami di kawasan perbincangan pos di bawah.