|
|
|
| Здравствуйте, подскажите, пожалуйста.
Имеется тестовый простенький скрипт
<?
echo "<a href=index.php?name=pp>1</a><br>";
echo "<a href=index.php?name=gg>2</a>";
?>
2 ссылки.
Что нужно вписать в файл htaccess, что бы при нажатии по ссылкам, вид в был такое
http://домен/1
http://домен/2
mod_rewrite установлен
Спасибо за помощь | |
|
|
|
|
|
|
|
для: vasvas
(29.04.2008 в 12:09)
| | Может наоборот ? А иначе какой смысл использовать мод_реврайт если у вас идет обращение к индекс.пхп .
<?
echo "<a href=ваш_домен/1>1</a><br>";
echo "<a href=ваш_домен/2>2</a>";
?>
|
| |
|
|
|
|
|
|
|
для: dima2207
(01.05.2008 в 20:14)
| | Здравствуйте.
Извините, пожалуйста, но я Вас не совсем понял dima2207
Не затруднит ли Вас поподробнее описать, что Вы имеете ввиду?
спасибо. | |
|
|
|
|
|
|
|
для: dima2207
(01.05.2008 в 20:14)
| | Я имел ввиду следующее,
При нажатии на ссыку передаётся перменная, и происходит какйо то действии, но я бы хотел что бы фактически в браузере было не htttp://домен?name=1
а домен домен/1 | |
|
|
|
|
|
|
|
для: vasvas
(02.05.2008 в 17:08)
| | Добавь в .htaccess
RewriteEngine On
RewriteRule ^[0-9]+$ index.php?name=$0
|
Далее тебе нужно выводить ссылки не index.php?name=1024, а сразу http://example.com/1024 или относительные URI типа /1024 или 1024.
В противном случае придется делать просто перенаправление, так как есть ты перенаправляешь пользователя на адрес http://example.com/page.html, но такой адрес и будет в адресной строке. Его ты изменить не сможешь, тем более с помощью mod_rewrite - модулем для сервера. | |
|
|
|
|
|
|
|
для: Atheist
(02.05.2008 в 17:24)
| | Спасибо за ответ, но я не понял, почему мне что-то нужно перенаправлять, почитал чуть-чуть про мод реврайт, я понял следующее, что он лишь изменяет строчку в браузере
напрмиер если не использовать мод реврайт, то он отображает следующее в адресной строке
http://домен/index.php?name=1
Если использовать, то ту же самую строчку он просто покажет как
http://домен/1
Хотяь весь функционал останется прежним, то есть изменится просто строчка адресная.
И для его использования мне нужно лишь прописать некоторые строчки в файле htaccess, ничего про перенаправление не было написано.
Извините, меня, воможно я чего-то не допонял. | |
|
|
|
|
|
|
|
для: vasvas
(02.05.2008 в 19:33)
| | > что он лишь изменяет строчку в браузере
Заблуждаешься.
> Спасибо за ответ, но я не понял, почему мне что-то нужно перенаправлять
Если ты хочешь оставить ссылки такие же, вроде <a href="index.php?name=1024">Click</a>, то чтобы в адресной строке отобразилось http://example.com/1024, нужно перенаправить с http://example.com/index.php?name=1024 на http://example.com/1024. В данном случае другого выхода нет.
> Хотяь весь функционал останется прежним, то есть изменится просто строчка адресная
Нет. Все ссылки надо менять.
Никто не способен заставить клиента отображать в адресной строке то, что он хочет (не будем рассматривать изощренные способы вроде подброса вируса). Клиент вообще ничего не должен знать о каких-то там index.php на удаленном сервере. Ему должны дать красивую ссылку вроде http://example.com/1024, он на неё переходит, а mod_rewrite уже на сервере обрабатывает этот запрос. | |
|
|
|
|
|
|
|
для: Atheist
(02.05.2008 в 21:47)
| | Спасибо большое за помощь Atheist
попробую написать тестовый скрипт. | |
|
|
|
|
|
|
|
для: vasvas
(02.05.2008 в 23:11)
| | Извините, пожалуйста, можно ещё вопрос.
RewriteRule ^[0-9]+$ index.php?name=$0
почему здесь выставляется $0, а не $1
а вот здесь уже нужно высталвять так
RewriteRule ^([0-9]+)/([0-9]+)$ index.php?l=$1&name=$2
так не будет работать
RewriteRule ^([0-9]+)/([0-9]+)$ index.php?l=$0&name=$1 | |
|
|
|
|
|
|
|
для: vasvas
(03.05.2008 в 12:22)
| | $0 - часть строки, соответствующая вхождению всего шаблона.
$1 - часть, строки, соответствующая первой подмаске, $2 - второй и т.д.
> ^([0-9]+)/([0-9]+)$
Под такой паттерн (шаблон) подходит, например "512/1024" и, соотвественно, $1 будет содержать "512", а $2 - "1024".
$0 же будет содержать всю строку "512/1024". | |
|
|
|