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]
Leave a Reply