Я использовал это конкретное правило mod_rewrite в нескольких других местах, и оно работает отлично, как и ожидалось. Однако, это не работает здесь, и для моей жизни я не могу понять, почему.
Установка выглядит следующим образом:
www.site.com/villas-in-florida/
Файл .htaccess находится в каталоге выше и содержит следующее:
Options +FollowSymLinks Options +Indexes RewriteEngine On RewriteRule ^([^/]+)-([^/]+)-([^/]+)-([^/]+)$ show-villa.php?id=$1&name=$2&location=$3&state=$4 [L]
Это должно преобразовать следующее:
http://www.site.com/villas-in-florida/show-villa.php?id=1&name=calabay-parc&location=davenport&state=florida
В:
http://www.site.com/villas-in-florida/1-calabay-parc-davenport-florida
Но это не так, и я рву свои настоящие волосы прямо сейчас. Будем признательны за любые советы, спасибо!
Это не будет конвертировать:
Это наоборот.т.е.
Он будет перезаписывать (не конвертировать):
Into:
Вы должны использовать URL-адреса, такие как http://www.site.com/villas-in-florida/1-calabay-parc-davenport-florida в вашем h refs не http://www.site.com/villas-in-florida/show-villa.php?id=1&name=calabay-parc&location=davenport&state=florida.Переписанный URL не будет отражен в браузере.
h refs
Также в rewriterule есть небольшая ошибка.
Options +FollowSymLinks Options +Indexes RewriteEngine On RewriteRule ^([^/]+)-([^/]+)-([^/]+)-([^/]+)-([^/]+)$ show-villa.php?id=$1&name=$2-$3&location=$4&state=$5 [L]