GNU/Linux >> Belajar Linux >  >> Linux

Tidak dapat menemukan aturan htaccess

Aturan ini hanya menambahkan / di belakang ke URL Anda jika tidak ada dan jika tidak ada . di URI, jadi https://example.org/test akan dialihkan ke https://example.org/test/ , tetapi https://example.org/test.html tidak akan ditulis ulang menjadi https://example.org/test.html/ (tetapi perhatikan:https://example.org/test.case/folder juga akan tidak dialihkan ke https://example.org/test.case/folder/ karena berisi . dalam URI).

## Do the following if the URI does not end with `/` or  does not contain an `.`: 
## the . is relevant for file names like test.html, which should n 
RewriteCond %{REQUEST_URI} !(/$|\.)

## Redirect it to the original URI with an added `/` and mark this as permanent:
RewriteRule (.*) %{REQUEST_URI}/ [R=301]

Tanpa memvalidasi, tetapi menggunakan pengalaman saya dalam penulisan ulang Apache, konfigurasi ini tampaknya:

  1. Cocokkan dengan bagian 'jalur' URI (bukan server, port, atau parameter kueri), misalnya '/my/location/file.html'.
  2. Cocokkan jika bagian ini tidak diakhiri dengan karakter '/' (garis miring), -atau- tidak menyertakan '.' (titik) karakter.
  3. Gunakan bagian jalur lengkap URI dan tambahkan garis miring ke depan.
  4. Kirim pengalihan HTTP 301 (permanen) untuk mengarahkan browser ke URI baru ini.

Ini akan menghasilkan kasus uji berikut

/ -> / /test -> /test/ /my/resource -> /my/resource/ /my/resource.type -> /my/resource.type /edge.case/resource -> /edge.case/resource

Jadi menurut saya aturan tersebut bertujuan untuk menambahkan garis miring ke sumber daya yang tampaknya bukan file, tetapi tampaknya memiliki huruf tepi.

Jika tidak menambahkan garis miring ke sumber daya dengan '.' (titik) di bagian non-file dari jalur ekspresi reguler harus diubah menjadi:

# match paths which do not end with a slash, or do not resemble a file with an extension
RewriteCond %{REQUEST_URI} !(/$|\.[^/]+$)
# redirect permanently to the same uri with a slash
RewriteRule (.*) %{REQUEST_URI}/ [R=301]

Linux
  1. Tidak Dapat Menginstal Anggur Di Ubuntu Studio 19.10?

  2. Cara Redirect menggunakan Htaccess – Aturan Umum untuk 301, 302, HTTPS

  3. Bagaimana saya bisa mengetahui tipe MIME file (Content-Type)?

  1. Bagaimana saya bisa memeriksa jumlah hit untuk setiap aturan di iptables?

  2. Bisakah saya membuat mesin virtual dari mesin fisik Windows XP?

  3. Di mana saya dapat mengetahui di mana sebuah paket telah diinstal?

  1. Bagaimana saya bisa mengetahui berapa lama waktu yang dibutuhkan untuk mengeksekusi pekerjaan slurm saya?

  2. Bisakah initramfs di-page keluar untuk menukar disk?

  3. Bagaimana saya bisa mengetahui OS server mana yang dijalankan oleh situs tertentu?