Auto Trailing Slash

Untuk yang udah pernah maen ke mod_rewrite pasti tau cara ubah http://xtrsyz.org/page.php?page=content&title=welcome menjadi http://xtrsyz.org/content/welcome/

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ /page.php?page=$1&title=$2 [QSA,L]

Dengan cara itu ketika membuka http://xtrsyz.org/content/welcome/ otomatis akan terbuka http://xtrsyz.org/page.php?page=content&title=welcome
Tapi ada satu masalah, bagaimana jika http://xtrsyz.org/content/welcome (tanpa diakhirin tanda ‘/’)
Tentu akan bernasib PAGE NOT FOUND

Hal ini bsa dengan mudah diselesaikan dengan cara seperti ini

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ /page.php?page=$1&title=$2 [QSA,L]

Dengan begitu dengan ataupun tanpa di akhiri tanda / akan terbuka page yang sama.

Tetap search engine tidak menyukai hal seperti ini.
Karena akan terjadi duplikat content.
Oleh karena itu harus dibuat agar redirect ke 1 link saja.
Caranya adalah dengan menambahkan / dibelakang alamat url

nih code untuk menambahkan trailing slash

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ http://xtrsyz.org/$1/ [R=301,L]

Dengan cara seperti ini, ketika membuka url tanpa diakhiri /, secara otomatis akan di redirect dengan menambahkan / di akhir url

Cara diatas untuk menambahkan trailing slash. Untuk menghilangkan trailing slash bisa dengan cara ini.

RewriteCond %{HTTP_HOST} !^.xtrsyz.org$ [NC]
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

Facebook Comments

Leave a Reply

Your email address will not be published. Required fields are marked *