Мне нужна рука, переписывающая некоторые URL-адреса. Мне нужно удалить имя папки из URL-адреса, а также удалить расширение файла php. Пример:
Мне нужно mysite.com/foldername/about.php
стать mysite.com/about/
Я должен сказать, что у меня есть несколько статических файлов php, к которым нужно получить доступ из mysite.com/filename/
вместо mysite.com/foldername/filename.php
Заранее благодарю за ваше время.
С уважением.
1 ответ
RewriteEngine On
RewriteRule ^/[.*]/?$ foldername/$1.php#{QUERY_STRING} [NC,L]
Если вы не используете QUERY_STRING (т.е. у вас нет параметров $_GET), вы можете удалить #{QUERY_STRING}
Обратите внимание, что это перезапишет все в вашем корневом каталоге имя_папки/ИМЯ.php.
Если вы хотите исключить определенные пути (например, файлы css, js и другие), я рекомендую вам сделать следующее:
RewriteCond RewriteCond %{REQUEST_URI} !^*.css$
RewriteCond RewriteCond %{REQUEST_URI} !^*.js$
RewriteCond RewriteCond %{REQUEST_URI} !^*.php$
RewriteCond RewriteCond %{REQUEST_URI} !^*DONTREDIRECT*$
RewriteRule ^/[.*]/?$ foldername/$1.php#{QUERY_STRING} [NC,L]
Похожие вопросы
Новые вопросы
.htaccess
Файл конфигурации уровня каталогов, используемый веб-серверами Apache. Используйте этот тег, если и только если содержимое .htaccess непосредственно участвует в теме. Мы знаем, что многие люди используют .htaccess, но просить членов сообщества не использовать этот тег, если вы не знаете, что это на вашем вопросе. Также обратите внимание, что тег «Apache» должен сказать о вопросах о _configurguiting_ Apache httpd и их потенциал Offictyness на StackoverFlow