Быстрый переход |
|
Программирование PHP, Perl, HTML, XHTML, CSS, JavaScript, MySQL и другие языки кодирования. |
|
Опции темы |
Сегодня | |||||
|
12.06.2019, 17:54 | #1 | |||
Реноме:
1556
|
htaccess: перенаправление адреса из ЧПУ
Нужно перенаправить только 2-ю строку из списка ниже на 1-ю строку из списка, чтобы 3-ю строку и последующие правило не затрагивало
1. 2. 3.
__________________
Последний раз редактировалось Port_Artur; 12.06.2019 в 17:56. |
|||
13.06.2019, 12:17 | #2 | |||
Реноме:
394
|
В лоб
Если обобщенно, опираясь на кол-во компонентов пути, то по какой-то такой маске: ^(/?.+/).+/$ В реале вариатив /? не нужен. Просто в контексте .htaccess у первой директивы нету вед. слэша в обрабатываемой строке, а у второй есть.
__________________
|
|||
14.06.2019, 13:37 | #3 | |||
Реноме:
1908
|
Для .htaccess (RewriteRule) версии: ^([^/]+/)[^/]+/$
__________________
|
|||
16.06.2019, 13:36 | #4 | |||
Реноме:
1556
|
Мне бы конкретное решение на мой пример
Код HTML:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} !^/robots\.txt$ RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{QUERY_STRING} ^fbclid RewriteRule ^(.*)$ /$1? [R=301,L] </IfModule> # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress <Files xmlrpc.php> Order Deny,Allow Deny from all </Files>
__________________
Последний раз редактировалось Port_Artur; 16.06.2019 в 13:38. |
|||
16.06.2019, 14:07 | #5 | |||
Реноме:
1908
|
Если "постоянный" редирект:
Код:
RewriteRule ^([^/]+/)[^/]+/$ /$1 [L,R=301]
__________________
|
|||
16.06.2019, 23:25 | #6 | |||
Реноме:
394
|
Тут для удобства кванторы считаются ленивыми по умолчанию, поэтому нет необходимости использовать ленивые кванторы явно. Ваш вариант тоже норм. Чем строже регулярка, тем лучше.
добавлено через 19 минут Для конкретных значений, т.е. в лоб? Я написал словами, например: Код:
RedirectMatch ^/moskva/mehanik/$ /moskva/
__________________
Последний раз редактировалось miketomlin; 16.06.2019 в 23:45. Причина: Добавлено сообщение |
|||
17.06.2019, 00:19 | #7 | |||
Реноме:
1908
|
Так вроде Апач использует PCRE, где по-умолчанию действуют Perl правила (в которых кванторы жадные). Или ошибаюсь?
__________________
|
|||
17.06.2019, 15:32 | #8 | |||
Реноме:
1556
|
Спасибо
__________________
|
|||
20.06.2019, 11:07 | #9 | |||
Реноме:
394
|
Я же написал, что тут ленивые. Видимо, для удобства непросвещенной публики так сделано.
__________________
|
|||
20.06.2019, 11:58 | #10 | |||
Реноме:
1908
|
Это где-то в документации Апача написано? Или методом эксперимента?
__________________
|
|||
Реклама | |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|