Htaccess Negative Lookahead Issue

Это очень специфическая проблема для моего сайта хобби.

У меня есть этот код в моем htaccess:

RewriteRule ^(?!assets|404|i|chats|books|forum|blog|help|terms|policy|jobs|settings|reset|signup|signin|signout)([^/]+)$ profile_home.php?userdomain=$1 [L] RewriteRule ^(?!assets|404|i|chats|books|forum|blog|help|terms|policy|jobs|settings|reset|signup|signin|signout)([^/]+)/([^/]+)$ profile_home.php?userdomain=$1&selection=$2 [L] 

Теперь это для большинства работает отлично, я могу посетить все эти ссылки (url / 404, url / i и т. Д., А также посетить (url / user1, url / user2) …

Проблема возникает от конкретного перехода к одному пользователю до сих пор, который, кажется, бросает случайный 404. Этот пользователь существует и удаляет lookahead, устраняет проблему, и пользователь может быть просмотрен, но, конечно, эти другие ссылки прерываются.

Я собираюсь предоставить примеры ссылок непосредственно для этой проблемы:

/ блог

/Форум

/ testingaccount

Все это работает отлично, но этот конкретный пользователь не работает. И я даже не могу понять, как это делается. Пользователь существует, а файлы и т. Д. Все существуют, но этот один пользователь вызывает проблему.

/ itsame или / forumerguy

Solutions Collecting From Web of "Htaccess Negative Lookahead Issue"

В вашем случае URL-адрес, который начинается с ваших исключений, будет работать: / i … / blog …

Вы можете сделать это:

 RewriteRule ^(assets|404|i|chats|books|forum|blog|help|terms|policy|jobs|settings|reset|signup|signin|signout)(/|$) - [L] RewriteRule ^([^/]+)$ profile_home.php?userdomain=$1 [L] RewriteRule ^([^/]+)/([^/]+)$ profile_home.php?userdomain=$1&selection=$2 [L] 

Или, если вам нужны другие правила после (активы | 404 | i | cha …), вы можете сделать это:

 RewriteCond %{REQUEST_URI} !^/(assets|404|i|chats|books|forum|blog|help|terms|policy|jobs|settings|reset|signup|signin|signout)(/|$) RewriteRule ^([^/]+)$ profile_home.php?userdomain=$1 [L] RewriteCond %{REQUEST_URI} !^/(assets|404|i|chats|books|forum|blog|help|terms|policy|jobs|settings|reset|signup|signin|signout)(/|$) RewriteRule ^([^/]+)/([^/]+)$ profile_home.php?userdomain=$1&selection=$2 [L]