htaccess Переписать URL-адрес без расширения .php в файл

У меня есть веб-сайт, на котором используется osCommerce, доступ ко всей странице можно получить непосредственно с http://www.example.com/pagename.php , но теперь я хотел бы настроить файл htaccess, чтобы он мог поддерживать http://www.example.com/username а затем перенаправление на http://www.example.com/account.php?id=username , в то время как другие страницы по-прежнему могут быть доступны с использованием того же старого способа.

Это означает, что если htaccess обнаружит, что URL-адрес не имеет расширения, он будет перенаправлен на http://www.example.com/account.php?id=username .

Спасибо!

Вам просто нужно одно правило:

 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/.]+)/?$ /account.php?id=$1 [L,QSA] 

Вы можете использовать этот код для удаления расширения php из URL:

 Options +FollowSymLinks -MultiViews # Turn mod_rewrite on RewriteEngine On RewriteBase / ## hide .php extension snippet # This will redirect you from http://www.example.com/username.php to # http://www.example.com/username externally RewriteCond %{THE_REQUEST} ^[AZ]{3,}\s([^.]+)\.php [NC] RewriteRule ^ %1 [R,L] # This will redirect you from http://www.example.com/username to # http://www.example.com/username internally RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*?)/?$ $1.php [L]