Я пытаюсь придумать правило переписывания, но у меня проблемы.
Что мне нужно — любой URL, который начинается с /services/XXX
быть перенаправленным на /services/api.php?service=XXX
Я также хочу игнорировать любые файлы или папки, которые также могут совпадать.
Что у меня так далеко:
RewriteRule ^services/([a-z]+)$ /services/api.php?service=$1 [NC, L]
Но это совсем не работает, на странице 404 говорится, что файл отсутствует, когда я его тестирую.
Буду признателен за любую оказанную помощь.
Чтобы игнорировать существующие файлы, просто игнорируйте «RewriteCond».
Просто перепишите все, что входит в services / api.php? Service …
Поместите это в вашу папку служб.
Будьте осторожны с кодировкой, сохраните файл как .htaccess с кодировкой, которую читает ваш сервер.
# .htaccess mod_rewrite
RewriteEngine On
RewriteRule ^(.*)$ api.php?service=$1 [QSA,L]
Если вам не нужно избегать файлов, просто перейдите по ссылке:
# .htaccess mod_rewrite
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ api.php?service=$1 [QSA,L]
Других решений пока нет …