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,

Спасибо!

2 ответа

Решение

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

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} ^[A-Z]{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]
Другие вопросы по тегам