.htaccess: справка по диапазону дат - PullRequest
0 голосов
/ 06 июля 2011

Привет, мой URL похож на http://www.mysite.come/events.php?eid=10

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

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

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

Имеет ли это смысл!?

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 06 июля 2011

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

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, поскольку apache никогда больше не будет 404.

1 голос
/ 06 июля 2011

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

# 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.


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

  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]
...