Очень простая помощь mod_rewrite
У меня есть каталог с именем fb и скрипт внутри с именем like.php. Я бы хотел, чтобы get-id передавался в like-файл с помощью mod_rewrite.
mypage.com/fb/like.php?id=5 будет mypage.com/fb/like/5
Мой (не работает) htaccess выглядит так:
RewriteEngine on
RewriteRule /fb/like/([0-9]+) /fb/like.php?id=$1
Кто-нибудь видит, что здесь не так?
1 ответ
Попробуйте удалить косую черту в начале матча и заменить шаблоны следующим образом:
RewriteRule fb/like/([0-9]+) fb/like.php?id=$1
mypage.com/
это доменное имя, поэтому строка, которая соответствует fb/like/5
Также рассмотрите возможность использования карата в начале строки соответствия, чтобы она соответствовала fb
но нет fffb
:
RewriteRule ^fb/like/([0-9]+) fb/like.php?id=$1
Вот краткое руководство по mod_rewrite, которое я нашел полезным.
Отредактируйте свой следующий вопрос:
Чтобы соответствовать mypage.com/something/fb/like/5, вы можете сделать это:
RewriteRule ^([^/]+)/fb/like/([0-9]+) $1/fb/like.php?id=$2
Это сохраняет первый каталог как $1. [^/]+
означает совпадение с одним или несколькими символами, которые не являются косой чертой. Поместите этот файл.htaccess в корневой каталог вашего домена.
В качестве альтернативы вы можете использовать второе-последнее правило и поместить этот файл.htaccess в подкаталог "что-то". Надеюсь, что это имеет смысл.
Или вы можете написать правило для соответствия просто like.php/([0-9]+)
так что он будет работать независимо от того, как выглядит путь к каталогу. Вы можете пойти еще более универсально и применить это к любому файлу PHP, а не только like.php
, Это действительно зависит от того, как вы хотите, чтобы ваш сайт работал.