Очень простая помощь mod_rewrite - PullRequest
0 голосов
/ 21 сентября 2011

У меня есть каталог с именем 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 Ответ

0 голосов
/ 21 сентября 2011

Попробуйте удалить косую черту в начале матча и замените шаблоны следующим образом:

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 в подкаталог «thing ".Надеюсь, что это имеет смысл.

Или вы можете написать правило для простого соответствия like.php/([0-9]+), чтобы оно работало независимо от того, как выглядит путь к каталогу.Вы можете пойти еще более универсально и применить это к любому файлу PHP, а не только к like.php.Это действительно зависит от того, как вы хотите, чтобы ваш сайт работал.

...