Это потому, что ваше регулярное выражение содержит косую черту.
Попробуйте:
RewriteRule ([^/]+)/?$ ?pt=$1 [L]
Знак вопроса после косой черты означает «ноль или единицу».Если вам не нужно это поведение, измените регулярное выражение соответствующим образом.
Редактировать:
Поскольку директивы перезаписи будут перезапущены после того, как перезапись выполнена (вхотя бы в контексте каждого каталога), важно убедиться, что правило не будет перезапущено после того, как вы уже достигли желаемой перезаписи.Есть несколько способов достижения этой цели, но один из них:
RewriteCond %{QUERY_STRING} !pt
RewriteRule ([^/]+)/?$ ?pt=$1 [L]
Смысл RewriteCond
состоит в том, чтобы предотвратить применение RewriteRule
, когда уже есть строка запроса с pt
в этом где-то, что было бы подсказкой, что переписывание уже произошло.Для более сложных правил может потребоваться больше или другие директивы RewriteCond
.