Я использую HTAccess для управления дружественные URLsHtaccess домен URL переписывания с групповым символом
Мой дружественный URL выглядит следующим образом:
www.example.com/p/12345/John-Smith
12345 является Идентификационный номер,/p/не изменяется, и имя не имеет отношения к дружественному URL-адресу. Мой фон URL выглядит следующим образом:
www.example.com/page.php?id=12345
Мой Htaccess выглядит следующим образом:
Options +FollowSymlinks
RewriteEngine on
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
RewriteRule ^p/([0-9]+)/([^/\.]+)?$ details.php?id=$1 [L]
Все работает как шарм.
Однако, я хочу, чтобы мой htaccess выглядел следующим образом. Единственное отличие -^(. *)/P/от просто^р.
Options +FollowSymlinks
RewriteEngine on
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
RewriteRule ^(.*)/p/([0-9]+)/([^/\.]+)?$ page.php?id=$1 [L]
В принципе, я хочу, чтобы гарантировать, что только каталог/р/в URL вызывает это конкретное правило HTAccess и не что-то непредусмотренное, как example.com/gdp/12345/abc
Для жизнь меня, я не могу понять, почему это не работает!
Заранее благодарю, как всегда.
Первое правило перезаписывает yoururl.tld/p/1234/Name, а второе правило перезаписывает следующее: yoururl.tld/Something/p/1234/Name, но не yoururl.tld/Somethingp/1234/Name .. так что это это именно то, что вы описали. Скажи, если я ошибаюсь? – Fabian
'^' означает начало URL-адреса. Поэтому перед «p/...» ничего не допускается. Поэтому 'example.com/gdp/12345/abc' никогда не будет соответствовать первому правилу. Просто попробуйте. Вы правы уже делает именно то, что вы хотите. – Gerben