У меня есть 2 страницы для страниц профиля участников и страниц профиля компаний, для участников URL должен быть: site.com/users/USER_ID
для компаний URL должен быть: site.com/COMPANY_ID
У меня это в моем .htaccess
:
#Members Profile Page
RewriteRule ^users/(.*)$ modules/members/members_profile.php?id=$1
RewriteRule ^users/(.*)/$ modules/members/members_profile.php?id=$1
#Companies Profile Page
RewriteRule ^(.*)$ modules/companies/companies_profile.php?id=$1
RewriteRule ^(.*)/$ modules/companies/companies_profile.php?id=$1
Но эти 2 правила конфликтуют, что приводит к тому, что страница пользователя также переходит на companies_profile.php
так как правило для компаний также содержит страницу профиля пользователя в адресе.
ОБНОВИТЬ: Я также использовал [L] флаг, не работает ...:
#Members Profile Page
RewriteRule ^users/(.*)$ modules/members/members_profile.php?id=$1 [L]
RewriteRule ^users/(.*)/$ modules/members/members_profile.php?id=$1 [L]
#Companies Profile Page
RewriteRule ^(.*)$ modules/companies/companies_profile.php?id=$1
RewriteRule ^(.*)/$ modules/companies/companies_profile.php?id=$1
Тем не менее, он загружается companies_profile.php
для URL-адресов типа /users/etc
..
Как я мог это решить?
Спасибо за любую помощь
Здесь это работает (/ в начале) - в соответствии с опубликованным вами URL-адресом это будет делать то, что вы хотите.
#Members Profile Page
RewriteRule ^/users/(.*)$ modules/members/members_profile.php?id=$1 [L]
RewriteRule ^/users/(.*)/$ modules/members/members_profile.php?id=$1 [L]
#Companies Profile Page
RewriteRule ^/(.*)$ modules/companies/companies_profile.php?id=$1
RewriteRule ^/(.*)/$ modules/companies/companies_profile.php?id=$1
То, что вы написали, не работает, потому что "^ user /" никогда не соответствует. Ваш URL-адрес - "/ user /". ^ означает начало строки. Итак, у вас есть не «начало строки, пользователь», а скорее «начало строки, /, пользователь».