#regex #.htaccess
Вопрос:
У меня есть этот URL-адрес
http://localhost:8888/dochealth/child-doc?cat=doctor
и хотел заменить его регулярным выражением .htaccess, чтобы оно стало
http://localhost:8888/dochealth/child-doc/doctor
до сих пор я пробовал это РЕГУЛЯРНОЕ выражение, но оно не работает
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
RewriteRule ^child-doc/([0-9a-zA-Z_-] ) child-doc?cat=$1 [NC,L]
</IfModule>
Ответ №1:
Пусть будет так:
Options -MultiViews
RewriteEngine On
RewriteRule ^child-doc/([w-] ) child-doc.php?cat=$1 [NC,QSA,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(. ?)/?$ $1.php [L]
Изменения заключаются в:
- Переместите
.php
правило обработчика расширений в нижнюю часть - Использование
child-doc.php
в других правилах - Дополнительная часть
QSA
(добавление строки запроса) в том же правиле - Отключение
MultiViews
для отключения службы согласования контента Apache