Несколько RewriteRule в htaccess, чтобы избежать 404 - PullRequest
0 голосов
/ 18 января 2020

Я создаю веб-сайт, который работает с API для получения всей отображаемой информации.

Я использую следующее правило перезаписи в моем файле .htaccess

RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-l
RewriteRule ^(.*)$ user.php/$1

Чтобы URL-адрес, похожий на http://domainname.com/user/username, не попадал в 404 и вместо этого вызовите файл пользователя. php, чтобы я мог затем захватить последнюю часть URL-адреса, извлечь его в API и отобразить результаты.

Это работает нормально. Однако теперь мне нужно сделать то же самое для другого типа URL, который выглядит как http://domainname.com/collection/collectionname, поэтому я попробовал это:

RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-l
RewriteRule ^(.*)$ user.php/$1
RewriteRule ^(.*)$ collection.php/$1

В конце я также попробовал различные флаги из RewriteRules, таких как [C], [N] и [L], но ни один из них, похоже, не работает, и результаты варьируются от внутренних ошибок сервера до обоих типов URL-адресов с использованием файла пользователя. php вместо каждого типа с использованием соответствующий.

1 Ответ

0 голосов
/ 18 января 2020

Наконец-то разобрался. В случае, если у кого-то есть такая же проблема, это правильный способ обращения с обоими случаями:

...