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

Jeysmook

Новичок
Подскажите пожалуйста как создать ссылку вида site.ru/user?id=..., site.ru/video
Просто когда создаешь новые папки, то ссылки становятся вида site.ru/user/?id=... А мне нужно чтобы было вот так : site.ru/user (без последнего слеша). Спасибо.
 

hell0w0rd

Продвинутый новичок
Вы поиском пользовались? Совсем недавно были такие темы.
http://www.php.net/manual
И поиск в гугле apache rewrite
Без rewrite - все запросы идут к файловой системе сервера.
 

Jeysmook

Новичок
Василий М.,
GusakovNick,
Вот сделал вот так, выдает нормальный адрес (user/123123), но когда набераешь адрес (user.php?id=123123), то тоже срабатывает, а нужно чтобы только работало так (user/123123). И еще почемуто не работает css, в чем может быть проблема?
PHP:
RewriteEngine on
RewriteRule user/(.*)/?$ user.php?id=$1
 

hell0w0rd

Продвинутый новичок
Почему не должно так работать? Этой строчкой:
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);
});
Вот тебе и работающее приложение)
 

Jeysmook

Новичок
GusakovNick, подскажите пожалуйста, а почему вот так не работает:

PHP:
RewriteRule ^/([^/]+)/?$ $1.php [L]
то есть я тут хочу любые страницы (/index.php, /video.php) заменить на (/index, /video)

А что с помощью rewrite нельзя сделать что-то типа перенаправления или изменение ссылки?
 

hell0w0rd

Продвинутый новичок
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 и главная(/) были одной и той-же страницей - один из скриптов будет инклудить другой?)
 

Jeysmook

Новичок
GusakovNick, та только начал не совсем понимаю как это делать, мне просто нужно чтобы файлы вида (video.php, user.php) были вида (video, user)
 

hell0w0rd

Продвинутый новичок
GusakovNick, та только начал не совсем понимаю как это делать, мне просто нужно чтобы файлы вида (video.php, user.php) были вида (video, user)
Вы хотите сказать, что тк не понимаете - вам все равно как сделать, главное чтобы работало? Я раз 10 переустанавливал макось потому что не понимал что не так делаю в конфигах апача, как поставить (заметьте не ручками), через пакетный менеджер, php54, ну не понимал и все. С каждым разом понимание каким-то образом все больше приходило) После запросто все сконфигурировал на VDSке)
Я это все к тому, что берите минифреймворк и пробуйте на нем. Не надо проходить путь собственных велосипедов. Вы до сих пор даже на страницу документации скорее всего не заглянули.
 
Сверху