Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Mod_rewrite, всё, что после корня домена в GET
цитата
30/08/16 в 16:25
 S_Flash
Как максимально просто организовать такой набор правил RewriteRule, чтоб
Код:
передавалось, как
Код:
соответственно?
И только можно было бы сделать несколько исключений по типу файла и по URL
Код:
http://domain.com/trololo.php - для всех /*.php
http://domain.com/trololo.jpg - для всех /*.jpg
http://domain.com/trololo1 - только trololo1
http://domain.com/trololo2 - только trololo2

отдавались реальные файлы сервера?
цитата
03/09/16 в 08:09
 Nikso
сначала исключения. Чтобы они обрабатывались в первую очередь и если правило сработает то флаг [L] останавливает проверку дальнейших правил
RewriteRule ^.+\.php$ $0 [L]
RewriteRule ^.+\.jpg$ $0 [L]
RewriteRule ^trololo1$ $0 [L]
RewriteRule ^trololo2$ $0 [L]

если предыдущие правила не сработали и скрипт дошел до этой строки
то сюда попадают все символы кроме слеша /
RewriteRule ^([^/]+) in.php?s=$1 [L]

учти что в таком случае
http://domain.com/trololo/othershit

othershit потеряется. in.php получит только все что было до первого слеша т.е. trololo в данном случае
если тебе нужно чтобы вся строка после домена шла в get то:
RewriteRule ^.*$ in.php?s=$0 [L]
цитата
03/09/16 в 14:36
 johndoe2
Стандартный подход: все существующие пути отдавать как есть, все несуществующие - пересылать на ядро

Код:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])/?$ in.php?s=$1 [L,QSA] # дополнительно выкусываем слеш в конце


Эта страница в полной версии