Перенаправление .htaccess вызывает цикл - PullRequest
0 голосов
/ 24 мая 2018

Я хочу сделать какое-нибудь перенаправление следующим образом:

Redirect 301 /foo /foo/bar/index.html

Проблема в том, что он создает цикл.

Интуитивно я бы ожидал, что это перенаправление будет соответствовать /foo, а не /foo.*.Но, видимо, все работает по-другому.Как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Это пример .htaccess моего файла.

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Redirect 301 /CPP001/ https://mydomainaddress.com/cpp/student-app/
Redirect 301 /DSE001/ https://mydomainaddress.com/cpp/examples/virtual.html
Redirect 301 /DSE002/ https://mydomainaddress.com/cpp/examples/overload.html
Redirect 301 /ANK001/ https://mydomainaddress.com/cpp/com267/
Redirect 301 /ANK002/ https://mydomainaddress.com/c-programming/com267HW2/
Redirect 301 /WEB001/ https://mydomainaddress.com/web-programming/examples/index.html
Redirect 301 /NET001/ https://mydomainaddress.com/pdf/IPControl.pdf
ErrorDocument 404 https://mydomainaddress.com/
ErrorDocument 403 https://mydomainaddress.com/

Попробуйте изменить Redirect 301 /foo /foo/bar/index.html на Redirect 301 /foo http://yourdomain.com/foo/bar/index.html

Если ничего внутри index.html не вызывает другое перенаправлениеМаловероятно, что цикл повторится снова.

0 голосов
/ 24 мая 2018

Используйте RedirectMatch вместо Redirect, чтобы иметь возможность использовать регулярное выражение для точного соответствия:

RedirectMatch 301 ^/foo/?$ /foo/bar/index.html

Убедитесь, что вы используете новый браузер для проверки этого изменения.

Regex^/foo/?$ будет соответствовать только /foo или /foo/, но не /foo/anything.

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