[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mod_rewrite в PHP
Rad Cor
Парни, сразу скажу я тут новенький, язык PHP только учу, по ходу дела возникает куча вопросов, если я что-то не правильно спрашиваю/говорю извините, буду исправляться.

Суть вопроса такова.

есть сайт, условно site.com
В корне лежит папка modules а в неё папка news а в ней news.php
В итоге страница доступна по такому адресу

site.com/modules/news/news.php

Я в .htaccess прописал такой код


RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php


Теперь файлы доступны без расширений .php
site.com/modules/news/news

Возник вопрос, что нужно прописать ещё, что бы в итоге файл который доступен по адресу

site.com/modules/news/news.php

Был доступен по такому адресу

site.com/news

_____________
VK
sergeiss
Не пиши в СМС ссылки на темы, плз! Если вопрос интересный, то на него и так ответят.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Rad Cor
sergeiss всё понял, больше не повторится rolleyes.gif

_____________
VK
Rad Cor
Ребят, так что ни кто не знает как решить этот вопрос?

_____________
VK
vasa_c
Все запросы направить на один php-файл и там уже спокойно разрулить с помощью нормального php-кода, а не диких модреврайтовских регулярок.

_____________
Блог ГО | Таблица символов Юникода | Графомания
AllesKlar
Rad Cor
То, что написал vasa_c - это называется единная точка входа. Это одна из основ MVC - изучи этот патерн хорошо, и активно им пользуйся.

Самое слабое место твоей идеи, это то, что при написании проекта ты можешь насоздавать 200 файлов и для каждого тебе придется прописать правило в htaccess



_____________
[продано копирайтерам]
Rad Cor
Я только начал учить PHP, куда мне ещё MVC. Поздней обязательно почитаю, поучу, но сейчас не вариант.

В общем проблему свою я решил. Кстати с помощью этого mod-rewrite генератора.

RewriteRule ^news$ /modules/news/news.php [L]
RewriteRule ^news/([^/]*)$ /modules/news/news.php?cat=$1 [L]
RewriteRule ^news/([^/]*)/([^/]*)$ /modules/news/news.php?cat=$1&id=$2 [L]




Цитата
Самое слабое место твоей идеи, это то, что при написании проекта ты можешь насоздавать 200 файлов и для каждого тебе придется прописать правило в htaccess


Как видите одна строка для модуля новости /news
Вторая строка для категорий этого модуля /news/$cut_id
Третья строка для страницы полного материала /news/$cut_id/$id

Всего на сайте будет модулей 5 + персональные странички.
В общем на такой и блинный код получиться.


Теперь возник другой вопрос.

Вот стандартный адрес
/modules/news/news.php
Вот модный адрес
/news

Как сделать так, что бы при вводе старого адреса

/modules/news/news.php
шёл редирект на новый
/news

/modules/news/news.php?cat=1 ==>> /news/1
/modules/news/news.php?cat=1&id=1 ==>> /news/1/1




И последний вопрос. Смотрите получается у меня в одном файле news.php выводится и главная страница новостей, и страница с категориями и страница с полными новостями.
Поисковики к этому относятся нормально?
Или лучше сделать для всех новостей /news.php
Для новостей по категориям /news_cat.php
Для полной новости /news_full.php

Или поисковикам насрать не важно в одном файле это всё или в разных?

_____________
VK
AllesKlar
Цитата
Или поисковикам насрать не важно в одном файле это всё или в разных?

Поисковики не видят твои скрипты, они виядят только html

Цитата
Я только начал учить PHP, куда мне ещё MVC. Поздней обязательно почитаю, поучу, но сейчас не вариант.

Это большое заблуждение.
Примитивную MVC можно строить и с начальными знаниями php
Иначе, ты сам свой путь будешь выкладывать граблями, а потом героически их преодолевать, каждый раз набивая шишки на лбу.

И вот еще и пяти минут не прошло, а первую граблю ты положил:
Цитата
/modules/news/news.php?cat=1&id=1 ==>> /news/1/1


при записи /news/1/2 ты как будешь понимать, какой параметр == 1, а какой параметр == 2 ?

_____________
[продано копирайтерам]
Rad Cor
Цитата
при записи /news/1/2 ты как будешь понимать, какой параметр == 1, а какой параметр == 2 ?


Я ни как, но сайт как то это понимает же))) Ведь после RewriteRule такие ссылки работают)
Цитата

Это большое заблуждение.
Примитивную MVC можно строить и с начальными знаниями php
Иначе, ты сам свой путь будешь выкладывать граблями, а потом героически их преодолевать, каждый раз набивая шишки на лбу.


Хорошо, а можно тогда носом тыкнуть, где можно почитать об этом MVC, но не в общем, а именно по моей теме, что бы я мог понять как делать красивые адреса без RewriteRule и как со стандартных редиректить на красивые url

_____________
VK
vasa_c
1. Как делать я сказал.
2. С никаких "стандартных" никуда редиректить не надо. Их просто не должно быть. Оставить только "красивые".
3. К MVC это не относится никак.

_____________
Блог ГО | Таблица символов Юникода | Графомания
AllesKlar
Rad Cor
"Красивые" - это называется ЧПУ и я не утверждал, что это MVC

Всё, в том числе и MVC нужно использовать там, где в этом есть смысл.
Если ты пишешь библиотеку, то, конечно, никакого MVC там не нужно.
Ты привел кусок кода - модули, новости.. и т.д. поэтому я и упомянул об MVC.
Ты потратишь на его изучения месяц, потом еще месяц на опыты и тесты. А потом у тебя будет свой каркас, на ктором ты быстро сможешь уже разворачивать небольшие сайты.

Потом перейдешь к изучению фреймворков и уже не будешь туда смотреть, как баран на новые ворота smile.gif

Носом ткнуть.. ну гугли, полным полно инфы.



_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.