|
|
|
| Здравствуйте.
Я никогда не пользовался ЧПУ, но теперь встала такая необходимость.
Подскажите пожалуйста, что нужно написать в .htaccess, чтобы ссылки из вида:
http://site.ru/index.php?add=enter
http://site.ru/index.php?add=about
сделать ссылки типа:
http://site.ru/enter
http://site.ru/about
Спасибо.
P.S. Я не вэб-мастер, просто, php и javascript для меня хобби и альтернатива кроссвордам :) | |
|
|
|
|
|
|
|
для: Deed
(26.07.2011 в 08:11)
| | пжалста
RewriteEngine On
RewriteRule ^([^/]*)$ /index.php?add=$1 [L]
|
>P.S. Я не вэб-мастер, просто, php и javascript для меня хобби и альтернатива кроссвордам :)
.htaccess и не php и не javascript, и можете не оправдываться))) | |
|
|
|
|
|
|
|
для: f111
(26.07.2011 в 14:09)
| | Спасибо!
:) | |
|
|
|
|
|
|
|
для: f111
(26.07.2011 в 14:09)
| | Извините, но что-то не то. Упорно выдает Internal Server Error.
.htaccess в UTF-8, как и положено. | |
|
|
|
|
|
|
|
для: Deed
(27.07.2011 в 18:08)
| | да вы правы, думал схитрить убрав слэшь, просто этот вариант я чаще всего использую
RewriteRule ^([^/]*)/$ /index.php?add=$1 [L]
#тут только - http://site.ru/about/
#-------------------------------
RewriteRule ^([0-9a-zA-Z]+)/?$ /index.php?add=$1 [L]
# а тут два варианта http://site.ru/about и http://site.ru/about/
#можно ещё так написать
RewriteRule ^(\w+)/?$ /index.php?add=$1 [L]
| на этот раз проверил
>Извините
это вы извините, ответил не проверив | |
|
|
|
|
|
|
|
для: f111
(27.07.2011 в 20:37)
| | Ага, еще раз спасибо! На этот раз сервер не возражает :)
Но... А как же GET-параметр «add»??? Как php его увидит?
О! Я потрясен!! Кто бы мог подумать! Я Вам очень благодарен! Придется засесть за синтаксис этого .htaccess | |
|
|
|
|
|
|
|
для: Deed
(27.07.2011 в 20:58)
| | >Но... А как же GET-параметр «add»??? Как php его увидит?
я так понимаю ответ найден?) | |
|
|
|
|
|
|
|
для: f111
(27.07.2011 в 23:48)
| | Ага! :)
А усли GET-параметра может быть два?
Например:
http://site.ru/index.php?add=about&name=me
Как в таком случае будет выглядеть запись в .htaccess? | |
|
|
|
|
|
|
|
для: Deed
(28.07.2011 в 00:47)
| | например так
RewriteRule ^(\w+)(?:/(\w+))?/?$ /index.php?add=$1&name=$2 [L]
# http://site.ru/about/me/ или
# http://site.ru/about/me или
# http://site.ru/about/ или
# http://site.ru/about
|
| |
|
|
|
|
|
|
|
для: f111
(29.07.2011 в 21:31)
| | Спасибо, но увы - рвет и корежит страницы, отключает css... Особенно, если имеется $_GET['name']
Даже осмелился изменить Ваш Рул на: RewriteRule ^([a-z]+)(/(\w+))?$ /index.php?add=$1&name=$3 [L]
Но все равно выходит страницы без стилей и JavaScript | |
|
|
|
|
|
|
|
для: Deed
(29.07.2011 в 23:15)
| | >отключает css
знакомо. попробуйте убрать слэшь перед индекс либо прописать прямой путь к файлам. | |
|
|
|
|
|
|
|
для: f111
(29.07.2011 в 23:39)
| | М-да... Придется отказаться от идеи с двумя GET'ами.
Спасибо, f111! | |
|
|
|
|
|
|
|
для: Deed
(29.07.2011 в 23:15)
| | Путь к стилям указываете абсолютный, а не относительный? | |
|
|
|
|
|
|
|
для: cheops
(30.07.2011 в 10:05)
| | Здравствуйте, cheops!
Насчет ссылок - все понятно, но дело в том, что на странице есть еще ссылки на внешние файлы, затем, есть ссылки во внешних javascript... В общем, я приблизительно понял принцип работы Rewrite и пока это для меня сложно. Здесь, как я понял, дело не только в качестве регулярки, но и в особенностях Apache. | |
|
|
|