|
|
|
| Помогите разобраться, у меня проблема с регулярными выражениями.
.htaccess содержит это
RewriteEngine on
RewriteRule ^/?user page.php [L]
RewriteRule ^user/([^/\.]+)/?$ user?id=$1 [L]
|
обращаюсь по ссылке http://www.sitename.ru/user/47/
в файле page.php не пропускает условие
<?php
if (isset($_GET['id'])) {
echo $_GET['id'];
} else{
exit("Вы зашли на страницу без параметра!");
}
?>
|
| |
|
|
|
|
|
|
|
для: Xolod
(30.09.2011 в 15:15)
| | Отлаживаете на сервере или локально? Есть возможность включить журналирование mod_rewrite? | |
|
|
|
|
|
|
|
для: cheops
(30.09.2011 в 15:33)
| | отлаживание на сервере. Включить журналирование хостер не позволяет. | |
|
|
|
|
|
|
|
для: Xolod
(30.09.2011 в 15:15)
| | >в файле page.php не пропускает условие
А можно вот это подробнее расшифровать. Вы обращаетесь к http://www.sitename.ru/user/47/ у вас срабатывает следующее правило
RewriteRule ^/?user page.php [L]
вас перебрасывает на page.php, так как в правиле нет передачи параметра, то page.php вызывается без ?id=47. page.php выдает "Вы зашли на страницу без параметра!".
1) Это верно, или в моих рассуждениях есть ошибка?
2) Как бы вам хотелось, чтобы система себя вела? | |
|
|
|
|
|
|
|
для: cheops
(30.09.2011 в 15:47)
| | Всё понял свою ошибку. А ведь 2 часа смотрел в эту строчку и не видел)
исправил на
RewriteRule ^user/([^/\.]+)/?$ /page.php?id=$1 [L]
|
Но проблема теперь в другом.
допустим в .htaccess
RewriteRule ^user/([^/\.]+)/?$ test.php?id=$1 [L]
|
test.php содержит:
<?php
if (isset($_GET['id'])) {
echo $_GET['id'];
echo '<a href="images/Enderman.png">картинка</a>';
} else{
exit("Вы зашли на страницу без параметра!");
}
?>
|
обращаюсь к скрипту по ссылке http://sitename.ru/user/47/
он пропускает к содержимому
в браузере ссылка на картинку выглядит так
http://www.sitename.ru/user/47/images/Enderman.png
|
А должна
http://www.sitename.ru/images/Enderman.png
|
| |
|
|
|
|
|
|
|
для: XoLoD
(30.09.2011 в 16:14)
| | С mod_rewrite всегда так, придется использовать абсолютные, а не относительные пути. Т.е. вместо
<?php
echo '<a href="images/Enderman.png">картинка</a>';
?>
| писать
<?php
echo '<a href="/images/Enderman.png">картинка</a>';
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(30.09.2011 в 17:30)
| | Спасибо. Век живи, век учись. | |
|
|
|