#.htaccess #mod-rewrite #url-rewriting
#.htaccess #мод-перезапись #переписывание URL
Вопрос:
У меня есть следующий URL:
http://example.com/pages/cms/impressum.php
и хотите получить URL-адрес, подобный этому:
http://example.com/impressum
Мое правило перезаписи таково:
RewriteEngine on
RewriteBase /
RewriteRule ^impressum$ /pages/cms/impressum.php [R,L]
Проблема в том, что я могу открыть URL-адрес двумя способами. Я хотел бы перенаправление из /pages/cms/impressum.php в /impressum. Если я использую [R = 301], второй URL, который мне не нужен, работает. Я хочу отменить это правило.
Ответ №1:
Использовать:
RewriteEngine On
RewriteBase /
# To externally redirect pages/cms/impressum.php to impressum
RewriteCond %{THE_REQUEST} s/ pages/cms/impressum.php[s?] [NC]
RewriteRule ^ /impressum [R=301,L]
# To internally forward impressum to pages/cms/impressum.php
RewriteRule ^impressum/?$ pages/cms/impressum.php [L,NC]