Правило mod_rewrite не работает должным образом - PullRequest
0 голосов
/ 08 февраля 2012

Я использовал это конкретное правило 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

Но это не так, и я рву свои настоящие волосы прямо сейчас. Будем признательны за любые советы, спасибо!

1 Ответ

1 голос
/ 08 февраля 2012

Это не будет конвертировать:

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

Это наоборот.т.е.

Он будет перезаписывать (не конвертировать):

http://www.site.com/villas-in-florida/1-calabay-parc-davenport-florida

Into:

http://www.site.com/villas-in-florida/show-villa.php?id=1&name=calabay-parc&location=davenport&state=florida

Вы должны использовать 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 не будет отражен в браузере.

Также в rewriterule есть небольшая ошибка.

Options +FollowSymLinks
Options +Indexes
RewriteEngine On

RewriteRule ^([^/]+)-([^/]+)-([^/]+)-([^/]+)-([^/]+)$ show-villa.php?id=$1&name=$2-$3&location=$4&state=$5 [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...