Сбой с треском при перезаписи .htaccess, не уверен, как устранить неполадки

#.htaccess #rewrite #ubuntu-14.04 #apache2.4

#.htaccess #url-перезапись #ubuntu-14.04 #apache2.4

Вопрос:

Я весь день безуспешно пытался выяснить, как перезаписать URL-адрес на моем локальном сайте разработки. Изначально файлы .htaccess игнорировались. Теперь они читаются, но не работают. Однако я не знаю, как устранить неполадки в файле .htaccess. Из того, что я прочитал, кажется, что Apache 2.4 избавился от указания вашего собственного журнала перезаписи. Единственная помощь, которую я получаю, — это /var/log/apache2/error.log, который для меня является греческим.

Переписать, который я пытаюсь, просто: local.domain.com/users/index.php?id=1 -> local.domain.com/users/1/

Мой .htaccess выглядит так:

 RewriteEngine On
RewriteRule ^users/([0-9] )/?$ users/index.php?id=$1 [NC,L]
  

При запросе local.domain.com/users/index.php?id=1 , URL-адрес остается неизменным. Error.log для apache выдает следующие 3 строки:

 [Tue Jun 17 15:20:04.705939 2014] [rewrite:trace3] [pid 6569] mod_rewrite.c(468): [client 127.0.0.1:46208] 127.0.0.1 - - [local.domain.com/sid#b63f02c0][rid#b6b12058/initial] [perdir /var/www/vhosts/domain.com/] strip per-dir prefix: /var/www/vhosts/domain.com/users/index.php -> users/index.php
[Tue Jun 17 15:20:04.705979 2014] [rewrite:trace3] [pid 6569] mod_rewrite.c(468): [client 127.0.0.1:46208] 127.0.0.1 - - [local.domain.com/sid#b63f02c0][rid#b6b12058/initial] [perdir /var/www/vhosts/domain.com/] applying pattern '^users/([0-9] )$' to uri 'users/index.php'
[Tue Jun 17 15:20:04.705990 2014] [rewrite:trace1] [pid 6569] mod_rewrite.c(468): [client 127.0.0.1:46208] 127.0.0.1 - - [local.domain.com/sid#b63f02c0][rid#b6b12058/initial] [perdir /var/www/vhosts/domain.com/] pass through /var/www/vhosts/domain.com/users/index.php
  

Расположение .htaccess: /var/www/vhosts/domain.com/ . Есть ли способ получить лучшую / дополнительную информацию о журнале? Действительно ли /var/log/apache2/error.log является тем журналом, который я должен использовать для этого? Действительно ли проблема с моим кодом .htaccess или есть какая-то конфигурация, которую я пропускаю или что-то в этом роде? Я знаю, что есть похожие вопросы, но до сих пор я не нашел ни одного, который был бы понятным и решением моей проблемы.

Заранее спасибо!

Комментарии:

1. Какую ошибку вы получаете и каково местоположение вашего файла .htaccess?

Ответ №1:

Вы переписываете входящий URI /users/1/ в /users/index.php?id=1 (форма SEO в динамическую форму). Ваш .htaccess выглядит правильно для этого (я предполагаю, что он находится в корне).

Вы уверены, что ваш сервер Apache собран с включенным RewriteEngine? Вы пропускаете сообщение об ошибке? Ваш введенный URI /users/1/ ?

Комментарии:

1. Странно. Я знаю, что пробовал /users/1/, и это не сработало. По-видимому, я что-то изменил с тех пор. Я вводил как форму строки запроса, так и более красивую форму, потому что я не был точно уверен, что произойдет. Спасибо вам обоим, хотя сейчас это работает.

Ответ №2:

Вы ищете регулярное [0 9] выражение, что означает, что оно ищет числа после /users . В вашем входном URL-адресе (при условии, что это ваш входной URL-адрес) /var/www/vhosts/domain.com/users/index.php после `/ users’ нет цифр

Поставьте число после того, как пользователям нравится /users/55555/ , и посмотрите, что произойдет.