- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
блин помогите, туплю, надо правила прописать:
вроде простая фигня - но чего то забываю все время.
Для всего Вашего шаблона будет такой код:
кроме 3 и 4 строки
это лишку скопипастил просто :)
я не дописал - язык может быть любой - два я просто для примера привел.
Там на самом деле проще все:
RewriteRule ^([^/]*).html$ index.php?page=$1
RewriteRule ^(.*)/(.*)[.html]?$ index.php?lang=$1&page=$2
но вот глючит в случае вызова:
site.com/fr
т.е. когда слеша нет.
malls,
а может решить проще
RewriteRule ^(*)$ index.php?page=$1
Просто передав скрипту все кроме домена. А скрипт уже сам препарирует строки и не мучать реврайт
лучше дать его апачу, вдруг потребуется сделать apache_lookup_uri
чтобы открывалось и со слешем и без слеша я лично использую такое
в начале правил. Если запрашивают не файл и в конце нет слеша, то слеш дописывается с редиректом, чтобы дублей не было
передав скрипту все кроме домена.
неверный подход - если например требуется обработчик несколькими скриптами - в зависимости от того куда обратились - возникает проблема, т.к. внутри index уже не сделать даже перенаправления, а все пихать в один скрипт - чрезчур...
Мысль понятна - сам как-то не дотумкал - но реализация все равно не получается. Он же в таком случае будет в обращениях вида:
site.com/en считать en файлом - и правило рушится.
блин - запарился, тем более проблема еще возникла - в сочетаниях вида:
site.com/en/
site.com/fr/
site.com/ru/
site.com/.../
site.com/admin/
нужно последний вариант отличить и оставить как есть.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d # подойдет для любой директории в целом
RewriteRule ^(.*)([^/]{1})$ http://%{HTTP_HOST}/$1$2/ [R=301,L]
или же
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/admin
RewriteRule ^(.*)([^/]{1})$ http://%{HTTP_HOST}/$1$2/ [R=301,L]
блин ну у меня в таком варианте он все переписывает как и в предыдущем т.е.:
site.com/en/ => site.com/en/
site.com/en => site.com/en/
site.com/en/page.html => site.com/en/page.html/
site.com/page.html => site.com/page.html/
т.е. косячит!
возьмитесь кто-нибудь помочь. 10 баксов! или мало? условия те же:
site.com/(*)/(*).html
site.com/(*)/
site.com/(*)
site.com/
все это в:
index.php?lang=$1&page=$2
site.com/(*).html
это в:
index.php?lang=&page=$1
для простоты понимания - если в конце запроса файл - у него всегда приписан .html, если такого нет, т.е. например:
site.com/(*)/(*)
это косяк - т.е. 404
Важно чтобы он не путал язык и файлы - в предложенных вариантах он помимо прочего это и делает.
за исключением:
site.com/(admin)/
site.com/(admin)
это добро в:
site.com/admin/
т.е. "как есть"
блин ну у меня в таком варианте он все переписываеткак и в предыдущем т.е.:
site.com/en/ => site.com/en/
site.com/en => site.com/en/
site.com/en/page.html => site.com/en/page.html/
site.com/page.html => site.com/page.html/
т.е. косячит!
возьмитесь кто-нибудь помочь. 10 баксов! или мало?
как в .htaccess добавить завершающий слэш если его нет и ссылка не на файл
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^/([a-z]+)(/)?$ /index.php?param=$1
попробуйте так
блин ну у меня в таком варианте он все переписывает как и в предыдущем т.е.:
site.com/en/ => site.com/en/
site.com/en => site.com/en/
site.com/en/page.html => site.com/en/page.html/
site.com/page.html => site.com/page.html/
т.е. косячит!
возьмитесь кто-нибудь помочь. 10 баксов! или мало? условия те же:
site.com/(*)/(*).html
site.com/(*)/
site.com/(*)
site.com/
все это в:
index.php?lang=$1&page=$2
site.com/(*).html
это в:
index.php?lang=&page=$1
для простоты понимания - если в конце запроса файл - у него всегда приписан .html, если такого нет, т.е. например:
site.com/(*)/(*)
это косяк - т.е. 404
Важно чтобы он не путал язык и файлы - в предложенных вариантах он помимо прочего это и делает.
за исключением:
site.com/(admin)/
site.com/(admin)
это добро в:
site.com/admin/
т.е. "как есть"
RewriteEngine On
RewriteBase /
RewriteRule ^([^\/]+)\.html$ index.php?lang=&page=$1 [NC,L]
RewriteCond %{REQUEST_URI} !^admin
RewriteRule ^([^\/]+)\/?$ index.php?lang=$1 [NC,L]
RewriteCond %{REQUEST_URI} !^admin
RewriteRule ^([^\/]+)\/(.+)\.html$ index.php?lang=$1&page=$2 [NC,L]
или же два последних правила обьединить в одно
RewriteCond %{REQUEST_URI} !^admin
RewriteRule ^([^\/]+)?\/?(.+)\.html$ index.php?lang=$1&page=$2 [NC,L] - теоретически должно работать
Надеюсь, что всё правильно понял)
теоретически должно работать
ключевое слово - теоретически, практически вообще ни одно правило не обрабатыватся.