Адрес сайта (ссылка сайта)

  • Автор темы Автор темы Jeysmook
  • Дата начала Дата начала

Jeysmook

Новичок
Подскажите пожалуйста как создать ссылку вида site.ru/user?id=..., site.ru/video
Просто когда создаешь новые папки, то ссылки становятся вида site.ru/user/?id=... А мне нужно чтобы было вот так : site.ru/user (без последнего слеша). Спасибо.
 
Вы поиском пользовались? Совсем недавно были такие темы.
http://www.php.net/manual
И поиск в гугле apache rewrite
Без rewrite - все запросы идут к файловой системе сервера.
 
Василий М.,
GusakovNick,
Вот сделал вот так, выдает нормальный адрес (user/123123), но когда набераешь адрес (user.php?id=123123), то тоже срабатывает, а нужно чтобы только работало так (user/123123). И еще почемуто не работает css, в чем может быть проблема?
PHP:
RewriteEngine on
RewriteRule user/(.*)/?$ user.php?id=$1
 
Почему не должно так работать? Этой строчкой:
PHP:
RewriteRule user/(.*)/?$ user.php?id=$1
запускаешь скрипт с входными данными id={id}

Не знаю правильно это или нет. Начинаешь - юзай микрофреймворк. Можно пропустить часть, когда пишешь велосипеды и сразу взять фреймворк. Вот советую: http://silex.sensiolabs.org/
Сразу познакомишься с composer. Когда разберешься - создай простой роут:
PHP:
$app->get('/user/{id}', function ($id) use ($app) {
    return 'Это страница пользователя №'.$app->escape($name);
});
Вот тебе и работающее приложение)
 
GusakovNick, подскажите пожалуйста, а почему вот так не работает:

PHP:
RewriteRule ^/([^/]+)/?$ $1.php [L]

то есть я тут хочу любые страницы (/index.php, /video.php) заменить на (/index, /video)

А что с помощью rewrite нельзя сделать что-то типа перенаправления или изменение ссылки?
 
GusakovNick, подскажите пожалуйста, а почему вот так не работает:

RewriteRule ^/([^/]+)/?$ $1.php [L]

то есть я тут хочус любые страницы (/index.php, /video.php) заменить на (/index, /video)
Не знаю почему не работает, я не люблю регулярки.
Я знаю что у приложения должна быть одна точка входа, можете ее назвать как угодно, но обычно это index.php, иногда app.php, можно jeysmook.php, если так больше нравится:)
PHP:
<IfModule mod_rewrite.c>
    RewriteEngine On
    #RewriteBase /path/to/app
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
Вот кстати у вас не хватает строчки RewriteCond %{REQUEST_FILENAME} !-f - она останавливает rewrite, если по адресу запроса лежит файл:)
Вы собираетесь на каждый роут создавать новый файл? Не лучше ли написать роутер, который будет вызывать контроллеры? Если вам нужно будет чтобы /catalog и главная(/) были одной и той-же страницей - один из скриптов будет инклудить другой?)
 
GusakovNick, та только начал не совсем понимаю как это делать, мне просто нужно чтобы файлы вида (video.php, user.php) были вида (video, user)
 
GusakovNick, та только начал не совсем понимаю как это делать, мне просто нужно чтобы файлы вида (video.php, user.php) были вида (video, user)
Вы хотите сказать, что тк не понимаете - вам все равно как сделать, главное чтобы работало? Я раз 10 переустанавливал макось потому что не понимал что не так делаю в конфигах апача, как поставить (заметьте не ручками), через пакетный менеджер, php54, ну не понимал и все. С каждым разом понимание каким-то образом все больше приходило) После запросто все сконфигурировал на VDSке)
Я это все к тому, что берите минифреймворк и пробуйте на нем. Не надо проходить путь собственных велосипедов. Вы до сих пор даже на страницу документации скорее всего не заглянули.
 
Сверху