|
|
|
| .htaccess
AddDefaultCharset windows-1251
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^([^/.]*)/([^/.]*)/([^/.]*)/([^/.]*)/*$ index.php?year=$1&month=$2&day=$3&page=$4
|
Все работает, если набрать http://horsepowers/2006/1/3/2/ - год, месяц,день, страница.
Но я хочу , что бы можно было, только год, год и месяц (http://horsepowers/2006/ или http://horsepowers/2006/1). А он выводит 404. Что надо подкорректировать? | |
|
|
|
|
|
|
|
для: Akira
(03.01.2006 в 16:31)
| | [url]
http://phpclub.ru/faq/wakka.php?wakka=arch/PCLZip/PCLZip3
[/url]
Всё просто и доступно) | |
|
|
|
|
|
|
|
для: Akira
(03.01.2006 в 16:31)
| | Фуф почти разобрался как работает данный модуль.
поидее так.
RewriteRule ^([^/.]*)/([^/.]*)/*$ index.php?year=$1&month=$2 // год/меяц/
RewriteRule ^([^/.]*)/([^/.]*)/([^/.]*)/*$ index.php?year=$1&month=$2&day=$3 // год/меяц/день/
RewriteRule ^([^/.]*)/([^/.]*)/([^/.]*)/([^/.]*)/*$ index.php?year=$1&month=$2&day=$3&page=$4 // год/меяц/день/страница/
|
| |
|
|
|
|
|
|
|
для: smertnik
(04.01.2006 в 19:55)
| | Несколько правил? Ха-ха , а я не додумался :)) Позже попробую. | |
|
|
|
|
|
|
|
для: Akira
(03.01.2006 в 16:31)
| |
AddDefaultCharset windows-1251
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^([^/.]*)/([^/.]*)/([^/.]*)/([^/.]*)/+([^/.]*)*$ index.php?year=$1&month=$2&day=$3&page=$4&journal=$4
RewriteRule ^([^/.]*)/([^/.]*)/([^/.]*)/([^/.]*)*$ index.php?year=$1&month=$2&day=$3&page=$4
RewriteRule ^([^/.]*)/([^/.]*)/([^/.]*)*$ index.php?year=$1&month=$2&day=$3
RewriteRule ^([^/.]*)/([^/.]*)*$ index.php?year=$1&month=$2
RewriteRule ^([^/.]*)*$ index.php?year=$1
|
Вопрос 1-ый.
Как сделать, что бы не нужно было бы добавлять слэш в конце пути?
Вопрос 2-ой.
Как написать правило, что бы по адресу http://site.ru/admin или http://site.ru/admin. она заходил именно в папку? | |
|
|
|
|
|
|
|
для: Akira
(07.01.2006 в 23:58)
| | UP
Все еще актуально. | |
|
|
|
|
|
|
|
для: Akira
(08.01.2006 в 20:07)
| | еще, есть ссылка http://akira.spb.su/tag/%EA%EE%E4%E8%ED%E3
Это эскейп-последовательность http://akira.spb.su/tag/новшества.
А если не использовать, то браузер выдает новшества такой вид.
Может ли апач преобразовывать в %EA%EE%E4%E8%ED%E3? | |
|
|
|
|
|
|
|
для: Akira
(07.01.2006 в 23:58)
| | >Вопрос 2-ой.
Попробуйте ввести условия RewriteCond
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^([^/.]*)/([^/.]*)/([^/.]*)/([^/.]*)/+([^/.]*)*$ index.php?year=$1&month=$2&day=$3&page=$4&journal=$4
RewriteRule ^([^/.]*)/([^/.]*)/([^/.]*)/([^/.]*)*$ index.php?year=$1&month=$2&day=$3&page=$4
RewriteRule ^([^/.]*)/([^/.]*)/([^/.]*)*$ index.php?year=$1&month=$2&day=$3
RewriteCond %{THE_REQUEST} !admin
RewriteRule ^([^/.]*)/([^/.]*)*$ index.php?year=$1&month=$2
RewriteCond %{THE_REQUEST} !admin
RewriteRule ^([^/.]*)*$ index.php?year=$1
|
>Как сделать, что бы не нужно было бы добавлять слэш в конце пути?
А для какого URL?. Приведите пример, а то я запутался в вариантах. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(10.01.2006 в 02:24)
| |
http://akira.spb.su/tag_name - где tag_name любое слово, мне надо, что бы оно срабатывало и на http://akira.spb.su/tag_name/
http://akira.spb.su/2006 = http://akira.spb.su/2006/
и т.д.
|
| |
|
|
|
|
|
|
|
для: Akira
(10.01.2006 в 03:34)
| | Вот пример для вашего .htaccess.
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^([^/.]*)/([^/.]*)/([^/.]*)/([^/.]*)/+([^/.]*)*$ index.php?year=$1&month=$2&day=$3&page=$4&journal=$4
RewriteRule ^([^/.]*)/([^/.]*)/([^/.]*)/([^/.]*)*$ index.php?year=$1&month=$2&day=$3&page=$4
RewriteRule ^([^/.]*)/([^/.]*)/([^/.]+)$ index.php?year=$1&month=$2&day=$3
RewriteCond %{THE_REQUEST} !admin
RewriteRule ^([^/.]*)/([^/.]+)/?$ index.php?year=$1&month=$2
RewriteCond %{THE_REQUEST} !admin
RewriteRule ^([^/.]*)/?$ index.php?year=$1
|
Правильно обрабатываются URL
http://www.site.ru/dir = http://www.site.ru/dir/
http://www.site.ru/dir/subdir = http://www.site.ru/dir/subdir/
|
Например, чтобы
http://www.site.ru/dir был равено http://www.site.ru/dir/
|
нужно было заменить * (стояло изначально) на + в скобке ([^/.]+)
RewriteRule ^([^/.]*)/([^/.]+)/?$ index.php?year=$1&month=$2
|
([^/.]*) - все кроме слеша может повторено 0 и более раз
([^/.]+) - все кроме слеша может повторено 1 и более раз
А так, как данное правило должно обрабатывать URL c 2-мя параметрами, то нужно ставить +, иначе правило ошибочно срабатывало для URL c одним параметром.
И нужно было добавить обработку последнего слеша в правило для обработки URL с одним параметром.
/? - символ слеша может быть повторен 0 или один раз. Т.е. он может быть, а может и отсутсвовать в URL.
RewriteRule ^([^/.]*)/?$ index.php?year=$1
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(12.01.2006 в 06:45)
| | Спасибо :)) А то я книгу O'Relly "Регулярные выражения" потерял. | |
|
|
|