То, о чем я прошу, просто переписывает любые под-directiories с URL-адресами в параметр URL-адреса PHP для удобного поиска, удобного для пользователя URL-адреса.
Я знаю, что это возможно с помощью Apache Rewrite Engine и связанных с ним параметров. Проблема с моей стороны в том, что я не хочу переписывать
mydomain.com/parameter -----------> mydomain.com/index.php?id=parameter
Но переписывание
mydomain.com/subdirectory/parameter -----------> mydomain.com/subdirectory/index.php?id=parameter
В моей корневой папке у меня есть файл .htaccess для 404 ошибок и т. Д., Перенаправление несуществующих страниц на главный. Во время тестов, которые я сделал, я отключил эти мысли, что они могут перезаписать другой файл .htaccess. Я пытался…
RewriteEngine On RewriteRule ^directory/([^/\.]+)/?$ index.php?id=$1 [L]
… и другие фрагменты, подобные этому.
Файл .htaccess, содержащий этот код, был помещен в папку root / directory. То, что я хотел достичь, это перенаправить root / directory / string в root / directory / index.php? Id = string.
Поскольку мои знания .htaccess и переписывания явно ограничены, мне нужны ответы на два вопроса.
Будет ли перезаписываемый 404 перезаписывающий файл в корневой папке перезаписывать любой другой переписывающий файл в подкаталоге?
Как мне добиться того, что мне нужно? (так же, как работают ур-укоротки – bit.ly/shortened) из подкаталога?
Это правило должно работать для вас в файле DOCUMENT_ROOT/.htaccess
:
RewriteEngine On RewriteRule ^(directory)/([^/.]+)/?$ /$1/index.php?id=$2 [L,NC,QSA]
Убедитесь, что в directory
нет другого файла .htaccess
.