Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите задать правило в .htaccess / 11 сообщений из 11, страница 1 из 1
17.09.2014, 10:48
    #38748860
Помогите задать правило в .htaccess
На сайте планируется использовать два типа адреса:

1. www.site.ru/nazvanie-categorii/ так будет выглядеть адрес рубрики со статьями.
2. www.site.ru/2/ так будет выглядить страница с последними статьями всех рубрик (статьи будут выводиться по 10 на главной странице)

Вопрос:

Как настроить правило в .htaccess,чтобы если в качестве значения после имени домена и слеша указанны ТОЛЬКО цифры сработало правило:
RewriteRule ^(.*)$ index.php?page=$1 [L]

а если после имени домена и слеша кроме цифр (или вместо цифр) указанны любые другие символы, сработало правило:
RewriteRule ^([a-zA-Z0-9_-]+)/$ category.php?category_name=$1 [L]
...
Рейтинг: 0 / 0
17.09.2014, 12:08
    #38748958
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите задать правило в .htaccess
Как-то так наверно
Код: sql
1.
2.
3.
4.
5.
6.
RewriteCond %{REQUEST_URI} ^/(\d+)/ [NC]
RewriteRule ^(.*)$ index.php?page=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)/$ category.php?category_name=$1 [L]
...
Рейтинг: 0 / 0
18.09.2014, 10:19
    #38750037
Помогите задать правило в .htaccess
Дружище спасибо! Код работает!
...
Рейтинг: 0 / 0
18.09.2014, 10:28
    #38750046
Помогите задать правило в .htaccess
Чтобы не плодить темы задам здесь еще один вопрос. Все мои ссылки доступны по двум адресам, статическому и динамическому, например: www.site.ru/car.html и www.site.ru/page.php?article=car. Подскажите, можно ли запретить доступ к динамическим страницам на сайте, чтобы работали только статические ссылки? Спасибо!
...
Рейтинг: 0 / 0
18.09.2014, 11:10
    #38750088
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите задать правило в .htaccess
Степан Речнойзапретить доступ к динамическим страницам на сайтеЗапрещать то зачем? Отдать на "динамических" адресах код 404 или редирект на их "статичные" аналоги. Второй вариант вообще почти безболезненным будет.
...
Рейтинг: 0 / 0
18.09.2014, 11:51
    #38750148
Помогите задать правило в .htaccess
vkle,

я про 404 ошибку и говорю. вопрос в том КАК это сделать? неужели опять анализировать URL с помощью регулярных выражений? Кстати в интернете по этому поводу информации нет!
...
Рейтинг: 0 / 0
18.09.2014, 12:13
    #38750206
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите задать правило в .htaccess
Ну по регулярным выражениям то есть :)
...
Рейтинг: 0 / 0
18.09.2014, 12:16
    #38750212
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите задать правило в .htaccess
Честно говоря я не помню как тут корректно сделать, что-то вроде этого будет
Код: php
1.
2.
RewriteCond %{REQUEST_URI} ^/page\.php\?article=(.*)$ [NC]
RewriteRule ^/page\.php\?article=(.*) $1.html [R=302,L]
...
Рейтинг: 0 / 0
18.09.2014, 12:53
    #38750277
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите задать правило в .htaccess
Степан Речнойя про 404 ошибку и говорю.Вот теперь говорите. А раньше про запрет упоминали. "Доступ запрещен" - это другой код.

Степан Речнойнеужели опять анализировать URL с помощью регулярных выражений?Да, а что в этом такого страшного? Для начала определитесь, что есть "динамический адрес". Любое наличие вопросительного знака в URL означает что адрес является "динамическим" или какой-то другой признак или группа признаков. После формализации можно составить левую часть RewriteRule.

Так как Вы не хотите делать редирект, а только отдать 404, то задача тривиальна. Проще всего для этой цели сделать отдельную страничку сайта, например, 404.php в корне сайта. Страничка должна отдавать код 404 и может содержать оформление в стиле других страниц сайта. Ее и указать в правой части правила. Собственно и всё.
...
Рейтинг: 0 / 0
18.09.2014, 15:12
    #38750529
Помогите задать правило в .htaccess
HettЧестно говоря я не помню как тут корректно сделать, что-то вроде этого будет
Код: php
1.
2.
RewriteCond %{REQUEST_URI} ^/page\.php\?article=(.*)$ [NC]
RewriteRule ^/page\.php\?article=(.*) $1.html [R=302,L]



К сожалению не работает. Попробую его поправить.

vkleДа, а что в этом такого страшного?
То что они мне даются тяжело. Помогите прописать правило чтобы во всех URL где встречаются символы php? отдавалась ошибка 404. Пусть пока так будет.
...
Рейтинг: 0 / 0
18.09.2014, 16:23
    #38750666
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите задать правило в .htaccess
Степан Речной,

Как то так, скорее всего:
Код: php
1.
RewriteRule \? /404.php

Не проверял.

PS: "Не работать" может из-за неправильного расположения этой строки относительно других правил и/или ключика [L], это по месту смотреть надо.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите задать правило в .htaccess / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]