Назад | Перейти на главную страницу

Конфигурация на стороне сервера URL?

Я перевел сайт на наш новый VPS. На старом сервере все работало нормально. Я думаю, что знаю причину проблемы, но не знаю, где ее исправить.

Я прочитал много сообщений о красивых URL-адресах, и кажется, что большинство из них используют решение mod_rewrite. Глядя на мой .htaccess файл, это не так. Это может быть даже не Pretty URL, а что-то совсем другое.

Наш VPS работает под управлением WHM / Cpanel

Версия сервера:

Apache / 2.4.25 (cPanel) OpenSSL / 1.0.1e-fips mod_bwlimited / 1.4

Apache 2.4, PHP 5.5, PHP 5.6 и PHP 7.0

CENTOS 7.3 x86_64 virtuozzo - сервер WHM 62.0 (сборка 16)

Я столкнулся с проблемой с URL-адресами и .htaccess.

Вот содержимое текущего .htaccess файл:

Options -All SymLinksIfOwnerMatch MultiViews
#AllowOverride None
Order allow,deny
Allow from all
DirectoryIndex index

Когда я захожу на сайт, я получаю:

Внутренняя ошибка сервера
Сервер обнаружил внутреннюю ошибку или неправильную конфигурацию и не смог выполнить ваш запрос. Свяжитесь с администратором сервера у веб-мастера, чтобы сообщить им время возникновения этой ошибки и действия, которые вы выполнили непосредственно перед этой ошибкой. Дополнительная информация об этой ошибке может быть доступна в журнале ошибок сервера. Кроме того, при попытке использовать ErrorDocument для обработки запроса произошла ошибка 500 Internal Server Error. *

Когда я удаляю все в .htaccess файл появляется веб-сайт, но когда я нажимаю на ссылку, он говорит, что не найден. (В коде не используется .php расширение, чтобы он не нашел страницу.)

На старом сервере это работает .php расширение не используется. Так что вместо http://www.example.com/make01.php просто http://www.example.com/make01.

Поэтому я думаю, что мне нужно кое-что добавить в конфигурацию, чтобы она работала так же, как на старом VPS. У меня есть доступ к обоим VPS, и я просмотрел PHP.ini файлы, но не совсем уверен, что ищу.

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

Пожалуйста, дайте мне знать, если вам понадобится дополнительная информация. Это мой первый пост. Между прочим, отличное сообщество!

Options -All SymLinksIfOwnerMatch MultiViews

Удалить -All параметр:

Options SymLinksIfOwnerMatch MultiViews

Как отмечено в Документы Apache для Apache 2.4:

Смешивание параметров с + или - с вариантами без них является недопустимым синтаксисом и будет отклонено во время запуска сервера проверкой синтаксиса с прерыванием.

Казалось бы, именно это и происходит здесь. В -All параметр не требуется, поскольку вы явно устанавливаете только SymLinksIfOwnerMatch и MultiViews. На Apache 2.2 (я полагаю, старый сервер) это просто привело бы к «неожиданным результатам» и без ошибок.

Поэтому я думаю, что мне нужно кое-что добавить в конфигурацию, чтобы она работала так же, как на старом VPS.

Похоже, вы пользуетесь MultiViews, так что вам должно быть хорошо. С участием MultiViews включен (часть mod_negotiation), запрос на http://www.example.com/make01 приведет к серверу поиск для соответствующего файла, который соответствует запрошенному базовое имя и требуется MIME-тип и подавать его клиенту. например. /make01 приводит к /make01.php обслуживается.

Обратите внимание, что если вы позже решили использовать mod_rewrite для перезаписи этого URL-адреса, вам, вероятно, придется отключить MultiViews поскольку это может вызвать конфликт (частая причина ошибки).

Это может быть даже не Pretty URL, а что-то совсем другое.

Независимо от того, как это реализовано, это все еще форма «красивых URL-адресов». Это просто делает URL-адреса более удобными (или «красивыми») для пользователя.