Перенаправить браузеры IE, используя .htaccess (от xhtml) - PullRequest
2 голосов
/ 29 октября 2010

, как гласит заголовок, я хочу использовать xhtml в качестве домашней страницы, и я хочу перенаправить посетителей с помощью браузеров Internet Explorer на другую страницу (.htm с меньшим содержанием на котором написано "Вы используете IE, жесткая сиська.").

Поскольку IE автоматически загружает файлы app / xhtml, я не могу сделать это с помощью javascript и прочего, поэтому я думаю, что единственный вариант - использовать .htaccess. Но после почти 2-х часов поисковика примеров htaccess из похожих постов, я все еще не могу заставить его работать, я получаю либо 403, либо 500 как в IE, так и в chrome / firerfox ..

Вот что я попробовал в последний раз:

<IfModule mod_rewrite.c>
Options +FollowSymLinks 
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} "MSIE 5" [OR]
RewriteCond %{HTTP_USER_AGENT} "MSIE 6" [OR]
RewriteCond %{HTTP_USER_AGENT} "MSIE 7" [OR]
RewriteCond %{HTTP_USER_AGENT} "MSIE 8"
RewriteRule ^(.*)$ http://www.mypage/index.IE.htm
</IfModule>

В любом случае, чтобы прояснить ситуацию, я бы хотел, чтобы мой .htaccess сделал это:

if(whoever_accesses_my_page is anyVersionOf_IE)
     set_index("http://www.mypage/index.IE.htm");
else
     set_index("http://www.mypage/index.xhtml");

1 Ответ

1 голос
/ 30 октября 2010

После ОЧЕНЬ большого количества попаданий (возможно, так как я не знаю .htaccess) я понял это:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} .*MSIE.*
RedirectMatch ^/$ index.IE.htm
DirectoryIndex index.xhtml

Приведенный выше фрагмент будет иметь эффект, когда кто-то посещает "http://www.yoursite.com/optionalFolder/".Оттуда он будет перенаправлен на index.IE.htm, если посетитель использует какую-либо форму Internet Explorer по сравнению с версией 4, иначе (если вы не IE) перейдите на index.xhtml.


Iтакже нашли хитрый способ заставить Internet Explorer действительно читать тот же .xhtml, что и Text / HTML, так что вам не нужно будет поддерживать две отдельные версии одного и того же сайта:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} .*MSIE.*
RewriteCond %{REQUEST_URI} \.xhtml$
RewriteRule .* - [T=text/html]

Этот фрагмент кода имеетэффект, когда кто-то обращается к "http://www.yoursite.com/anyPageName.xhtml". Если это Internet Explorer, то он перезапишет тип документа на text / html вместо application / xhtml + xml .Иначе, любой другой браузер будет нормально открывать xhtml.


Вопрос: Как заставить фрагмент # 2 работать для URL, который имеет только путь к каталогу?

(работает только для "http://www.yoursite.com/pageName.xhtml"; как мне заставить его работать на" http://www.yoursite.com/optionalFolder/"?)

Другими словами, DirectoryIndex index.xhtml не работает во фрагменте № 2 (он подавляет RewriteRuleдля IE; если я добавлю DirectoryIndex, IE автоматически загрузит XML)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...