Я пытаюсь сделать простое перенаправление на страницу обслуживания, но похоже, что apache не позволяет мне это сделать!
У меня есть папка для трех версий вики (каждая с определенным языком), поэтому я хочу перенаправить каждый трафик вики на его собственную страницу обслуживания.
вот мой .htaccess
#Redirect trafic to maintenance page
RewriteEngine On
RewriteCond %{REQUEST_URI} !maintenance.htm$ [NC]
RewriteRule "(.*\/wiki.*\/).*" "$1/maintenance.htm" [R=302,L]
цель - перенаправить "myserver / wiki / ANYTHING" на "myserver / wiki / maintenance.htm"
если бы кто-нибудь мог сказать мне, что я делаю не так, было бы хорошо
Спасибо
Редактировать:
После еще нескольких тестов, похоже, я ищу что-то подобное
RewriteRule "(.*)" "??PROTOCOL??://%{HTTP_HOST}/??SITEFOLD??/maintenance.htm" [R=302,L]
Кажется, это работает:
#Redirect trafic to maintenance page
RewriteEngine On
RewriteCond %{REQUEST_URI} !maintenance.htm$ [NC]
RewriteRule "(.*\/wiki)\/.*" "$1/maintenance.htm" [R=302,L]
Ваша версия позволяет / также соответствовать. * (Поскольку Apache является жадным регулярным выражением), а также включение / в скобки означает, что это повторяется. Итак, в вашем примере:
myserver/wiki/test1/test2
перенаправит на это (с test1 и double /):
myserver/wiki/test1//maintenance.htm
тогда как в моем примере это будет перенаправлено на:
myserver/wiki/maintenance.htm
Я думаю, это то, что вам нужно.
Однако, хотя мое решение, приведенное выше, должно работать, иногда может быть лучше просто упростить его для вашего собственного здравомыслия и иметь только три из них. Хотя это немного повторяется и не масштабируется, если вы ограничены тремя, то иногда ясность лучше, чем ум. Например, если у вас есть английская вики, испанская вики и немецкая вики в / en / wiki, / es / wiki и / de / wiki соответственно, тогда следующее может быть проще.
#Redirect trafic to maintenance page
RewriteEngine On
RewriteCond %{REQUEST_URI} !maintenance.htm$ [NC]
RewriteRule "/en/wiki/.*" "/en/wiki/maintenance.htm" [R=302,L]
RewriteCond %{REQUEST_URI} !maintenance.htm$ [NC]
RewriteRule "/es/wiki/.*" "/es/wiki/maintenance.htm" [R=302,L]
RewriteCond %{REQUEST_URI} !maintenance.htm$ [NC]
RewriteRule "/de/wiki/.*" "/de/wiki/maintenance.htm" [R=302,L]