Сначала поместите правила перезаписи для статических страниц и добавьте к ним флаг [L]
:
RewriteRule ^contact contact_us.php [L]
...
затем после тех, используйте ваше правило перезаписи для имени пользователя:
RewriteRule ^(.*)$ user.php?user=$1 [L]
(надеюсь, никто не имеет имя пользователя contact
).
РЕДАКТИРОВАТЬ : Основываясь на выводе журнала, который вы разместили (который, я предполагаю, соответствует неудачной попытке доступа к странице contact
... верно?), Попробуйте изменив правило перезаписи contact
на
RewriteRule ^contact$ contact_us.php [L]
или
RewriteRule ^contact contact_us.php [L,NS]
То есть либо добавьте $
, чтобы шаблон соответствовал только буквальному URL-адресу contact
, либо добавьте флаг NS
, чтобы он не применялся к подзапросам. Согласно выводу журнала, похоже, что произошло то, что Apache переписывает contact
в contact_us.php
, а затем выполняет внутренний подзапрос для этого нового URL. Все идет нормально. Странно то, что шаблон ^contact
снова соответствует contact_us.php
, «преобразовывая» его в contact_us.php
, то есть то же самое, что Apache интерпретирует как сигнал о том, что он должен полностью игнорировать правило. Теперь, я думаю, 1034 * Apache будет иметь смысл игнорировать правило только для подзапроса, но я не уверен, что он игнорирует весь процесс перезаписи весь и оставляет исходный URL, /contact
, как есть. Если это так, внесите одно из предложенных изменений и исправьте его.
РЕДАКТИРОВАТЬ 2 : ваша выдержка из журнала перезаписи напомнила мне кое-что: я бы предложил сделать правило перезаписи
RewriteRule ^([^/]+)$ user.php?user=$1 [L]
поскольку косые черты не должны встречаться ни в одном из имен пользователей. (Верно?) Или вы могли бы сделать
RewriteRule ^(\w+)$ user.php?user=$1 [L]
если имена пользователей могут включать только символы слов (буквы, цифры и подчеркивание). По сути, создайте регулярное выражение, которое соответствует только любой последовательности символов, которая может быть допустимым именем пользователя, но не соответствует URL-адресам изображений или файлов CSS / JS.