Проблемы с Apache hashbang url - PullRequest
0 голосов
/ 17 июля 2011

Я установил старый проект Rails 2 на совершенно новом Apache @ Debian # squeeze. Сам проект может быть одним пейджером, использующим ссылки для прокрутки страницы вверх и вниз. Мои ссылки выглядят так:

http://mydomain.com/en/#home

Эти ссылки работают нормально, если JavaScript перехватывает событие click и просто прокручивает до нужного раздела. Если пользователь покидает одну страницу и открывает страницу, на которой эти ссылки (все те же) не могут быть пройдены через JavaScript, я получаю только:

Forbidden

You don't have permission to access /en/ on this server.

Если я изменю ссылку на:

http://mydomain.com/en#home

все работает нормально и как положено. Но я не хочу менять структуру ссылок. Это уже хорошо работало на старой версии Debian5.

Я ожидаю, что это будет проблема конфигурации Apache2, но не нахожу ничего полезного в сети.

С нетерпением жду любого просветления. Спасибо Felix

1 Ответ

1 голос
/ 17 июля 2011

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

Все, что находится после хэштега #, равно никогда передано на сервер.Его стандартизация HTTP, он просто не передается на сервер.

Он предназначен только для перехода к привязке на веб-странице и сегодня используется для множества новых методов, включая, но не ограничиваясь, сценариями xss,javascript hooks и т. д.

Возможно, ссылки запрещены для загрузки с событием onclick, и некоторые javascript что-то делают вместо этого, но не возможно, чтобы вы оказались на этой странице http://mydomain.com/en/#home, если http://mydomain.com/en/не работает.

Однако, чтобы решить вашу проблему, вам, вероятно, придется настроить свое правило перезаписи apache (или вообще включить mod_rewrite?), чтобы также захватывать ссылки с конечными слешами.

Ссылка http://mydomain.com/en/ http://mydomain.com/en это что-то другое, и может обслуживать совершенно другую страницу.

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

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

Чтобы решить вашу проблему, пожалуйста, попробуйте найти соответствующую RewriteRule, скопируйте ее и добавьте еще разс косой чертой.Посмотрите, работает ли он, и выполните перенаправление на URL без косой черты.

Вы также можете отредактировать свой ответ и опубликовать конфигурацию своего сервера, чтобы получить помощь в этом.

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