#.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/
, и посмотрите, что произойдет.