У меня есть приложение Ruby on Rails, которое нормально работает на моем ноутбуке ( http: // локальный: 3000 / )
Если я напишу в своем браузере http://example.com:12007/ или http://www.example.com:12007/ все страницы работают как положено. Но если я напишу http://example.com/ или http://www.example.com/ отображается первая страница, но без каких-либо css или изображений (точно так же, как она их не найдет). Я могу видеть весь текст (даже текст из моей базы данных MySQL), но без формата. И если я нажимаю на любую ссылку, я получаю такую страницу с ошибкой:
Not Found
The requested URL /some_controller was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Что мне делать, чтобы мой сайт работал без указания порта в адресной строке?
Содержание моего /public_html/.htaccess
файл
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^/?$ "http\:\/\/127\.0\.0\.1\:12007%{REQUEST_URI}" [P,QSA,L]
который, я думаю, был создан CPanel Rewrites.
Можете ли вы получить доступ к ресурсу / some_controller напрямую, если укажете на него свой браузер? То же самое верно и для ваших файлов CSS. Можете ли вы опубликовать фрагмент источника HTML, который включает HREF или SRC для ваших ссылок / CSS?
Редактировать...
Теперь, когда я смотрю на это правило перезаписи, конечно, оно не работает.
^/?$
Это будет соответствовать только URL-адресу /. Измените его на:
RewriteRule ^(.*)$ http://127.0.0.1:12007/$1 [P,QSA,L]
И это должно отмечаться. Обратите внимание, что приведенное выше будет прокси все запросы к Rails. Вероятно, вам следует размещать свои мультимедийные файлы вне контроля Rails, но это упражнение для читателя.