2011-07-06 2 views
0

Привет мой URL является чем-то вроде http://www.mysite.come/events.php?eid=10.htaccess: диапазон дат помощь

Событие Дата начала является 01-07-2011

Название события: летнее путешествие

Я хочу, чтобы отобразить выше URL чтобы быть похожим на http://www.mysite.com/events/01/07/2011/summer-trip

Означает ли это !?

Буду признателен за все ваши ответы, пожалуйста, помогите как можно скорее.

Благодаря

ответ

1

Если вы просто хотите, чтобы отправить дату в дружественном формате, это довольно просто Перенаправление:

# Untested example 
RewriteEngine On 
RewriteRule ^events/(\d{2})/(\d{2})/(\d{4})/.* events.php?date=$3-$2-$1 

Однако mod_rewrite не будет делать магию. Невозможно получить 10 от 01/01/2011/summer-trip.


Edit: Я предполагаю, что я не должен взять на себя вопрос буквально и дать некоторые подсказки. Если вы хотите, чтобы связать события дружеской строкой, вам нужно сделать несколько внутренних изменения:

  1. Добавить новый столбец в таблицу событий в базе данных и сделать его уникальным (большинство СУБД позволяет создавать уникальные индексы). Эта новая колонка (назовем ее url_title) проведет дружественную строку.

  2. Откорректируйте свой PHP-скрипт так, чтобы он принимал url_title как аргумент, а не цифровой.

И ваше правило mod_rewrite будет что-то вроде этого:

# Again, untested 
RewriteEngine On 
RewriteRule ^events/\d{2}/\d{2}/\d{4}/([^/]+)/?$ events.php?url_title=$1 [L] 
+0

Спасибо, что помогли мне, у меня есть код, который также может сделать то же самое, что вы, ребята, только что объяснили ранее. Мой код: RewriteRule^events/([0-9 _-] +)/([a-zA-Z0-9 _-] +) $ evnts.php? Edate = $ 1 & ename = $ 2 Моя подпись здесь, я используя smarty, и это изменит мой javascript и CSS-путь. Всякая идея, Что я делаю неправильно здесь !? – Nuhman

+0

@Nuhman, это совершенно другая тема.Если вы используете относительные пути, вы не можете свободно перемещать документы. Вместо этого используйте абсолютные пути. –

2

Попробуйте что-то вроде:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L] 

Это поймать все перенаправления - если файл не существует, чтобы соответствовать запросу, запрос передается в index.php с оригинальной URL , (как это делают большинство фреймворков, wordpress и т. д.)

Тогда у вас будет $ _GET ['url'], доступный в index.php, который вы можете проанализировать в php и делать все, что нужно, чтобы проверить/загрузить соответствующего содержания.

Обратите внимание, что вам необходимо обеспечить выполнение ошибки 404 в PHP здесь, поскольку apache больше никогда не будет 404.

+0

только часть о том, как компилировать перенаправления URL и как перенаправить то отсутствует. – hakre

Смежные вопросы