У меня возникли трудности с получением .htaccess, чтобы правильно переписать мои URL. У меня есть файл api, который ожидает параметры function
, user
, id
, action
, profileid
..htaccess не удалось передать довольно url
RewriteRule ^phonebook/user/(.+)/(.+)/(.+)/(.+)$ /api.fcgi?function=phonebook;user=$1;id=$2;action=$3;profileid=$4
RewriteRule ^phonebook/user/(.+)/(.+)/(.+)$ /api.fcgi?function=phonebook;user=$1;id=$2;action=$3
RewriteRule ^phonebook/user/(.+)/(.+)$ /api.fcgi?function=phonebook;user=$1;id=$2
RewriteRule ^phonebook/user(.+)$ /api.fcgi?function=phonebook;user=$1
RewriteRule ^phonebook/(.+) /api.fcgi?function=phonebook;id=$1
RewriteRule ^phonebook(.*) /api.fcgi?function=phonebook$1
Когда я называю /phonebook/user/12345/1
он перезаписывается function=phonebook;user=12345;id=1
. Это правильно и было бы переписано на третьем правиле сверху.
Однако, когда я называю /phonebook/user/12345/1/destination
написано, как function=phonebook;user=12345;id=1/destination
, где, как я ожидал, function=phonebook;user=12345;id=1;action=destination
Аналогично, /phonebook/user/12345/1/destination/1
переписывается в function=phonebook;user=12345;id=1/destination/1
, когда он должен быть function=phonebook;user=12345;id=1;action=destination;profileid=1
В нижних 4 линии были переписывания true, я немного смущен относительно того, почему два верхних правила не собираются. Любая помощь была бы признательна, так как это вызвало несколько вопросительных знаков.
Вы пытались добавить флаг '[L]' после каждого правила? Это должно предотвратить дальнейшие обработки правил, если есть совпадения – arco444