301 редирект в.htaccess вызывает ошибку сервера 500 (перенаправление на не-URL)
есть такая ошибка.
при добавлении Redirect 301
правила как:
Redirect 301 "/page1.html" "/dir1/"
мой сайт терпит неудачу с ошибкой сервера 500, и в журнале ошибок apache эта ошибка появляется:
[Wed Mar 16 11:08:52 2011] [alert] [client 127.0.0.1] /home/htdocs/site.com/www/.htaccess: Redirect to non-URL
Mod rewrite установлен, также пытался предоставить URL-адреса без кавычек.
на производственном сервере это .htaccess работает нормально, но на локальных причинах неприятностей
любые идеи, пожалуйста)
Это правило работает
Redirect 301 "/page1.html" "http://www.site.com/dir1/"
но мне нужен способ поставить относительные пути вместо полного URL-адреса (сервер работает)
3 ответов
изменить все Redirect 301
правила:
RewriteRule ^/page1.html$ /dir1/page.html [R=301,L]
теперь работает. Но как это работает на производстве?
для меня у меня была точно такая же проблема. Добавление "http://domain.com "перед" /mypage " работал; я все еще тестирую, чтобы заставить его работать без, как это делает на моем производственном сервере. Так мой .htaccess в моей локальной среде тестирования, пошел так:
сломанный: Редирект 301 /моя страница /что каталоги directory1/подкаталог/моя страница/
исправлено: Перенаправление 301 http://mydomain.com/mypage http://mydomain.com/directory1/sub-directory/mypage/
у меня была такая же проблема, для меня это не сработало:
RewriteRule ^/page1.html$ /dir1/page.html [R=301,L]
то, что сработало для меня, - это удалить ведущий Слэш, и добавить мягкий хвост Слэш с ? вот так:
RewriteRule ^(page1.html)/?$ dir1/page.html [R=301,L]