У меня есть веб-сайт, на котором используется 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]