Если вы хотите, чтобы завершающий слеш был необязательным, вы должны исключить файл, для которого вы переписываете запрос. В противном случае у вас будет хорошая бесконечная рекурсия.
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/a/index\.php$
RewriteRule ^/a/([^/]+)/?$ /a/index.php?id=$1 [L]
Здесь любой запрос, начинающийся с /a/…
, но не /a/index.php
, переписывается в /a/index.php
.
Но если косая черта обязательна, исключать файл назначения не нужно:
RewriteEngine on
RewriteRule ^/a/([^/]+)/$ /a/index.php?id=$1 [L]