Вопрос

У меня есть следующий 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]
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top