справка по перезаписи URL htaccess
Вопрос
У меня есть следующий URL-адрес перезаписи:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs
RewriteRule ^(.*)$ index.php?page=$1 [PT,L]
Теперь я хочу добавить исключение, чтобы, если URL-адрес был чем-то вроде mysite.com/abc он также должен игнорировать его и все вещи внутри него.mysite.com/abc/dfgs также следует исключить из этого переписывания.
Как я могу этого добиться?
Решение
Если /abc является существующим каталогом, вы можете поместить туда другой файл .htaccess с
RewriteEngine Off
Если это действительно всего лишь одна строка, которую вы не хотите переписывать (независимо от того, существует она или нет)
RewriteCond %{REQUEST_URI} !^/abc
не будет перезаписываться, если запрошенный путь начинается с "/abc"
Чтобы протестировать правила перезаписи, не портя сайт для обычных браузеров (не то чтобы вы должны редактировать в реальной среде, конечно, это чисто гипотетически :-) ), я нашел следующее очень полезным:
RewriteCond %{REMOTE_ADDR} 12.34.56.78 # <-- where that's your IP address
Другие советы
Это должно избежать перезаписи, если URI содержит abc.Это может быть или не быть именно тем, чего вы хотите.Если это не так, отредактируйте свой вопрос.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#Rewrite ONLY if the REQUEST does NOT contain abc
RewriteCond %{REQUEST_URI} !abc
# Rewrite all other URLs
RewriteRule ^(.*)$ index.php?page=$1 [PT,L]