Кто-нибудь знает разницу между apache 2.2 mod_rewrite и apache 2.4 rewrite!
У меня есть приложение для создания веб-сайтов, и оно отлично работает, но я хочу перенести код с сервера apache 2.4 на сервер apache 2.2.
Когда я это делаю, я получаю рекурсивный цикл в правилах перезаписи на сервере 2.2:
Вот код .htaccess, который РАБОТАЕТ на сервере apache 2.4.
# Powered by Domainsunder.ca
DirectoryIndex index.php index.cgi index.html
ErrorDocument 401 "Unauthorized"
ErrorDocument 403 "Forbidden"
RewriteEngine On
#### PERSISTENT CONTENT ####
#### PERSISTENT CONTENT END ####
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ sitepro/$1 [L,QSA]
#### PERSISTENT CONTENT ####
Поэтому, когда я запускаю его на apache 2.2, он бесконечно зацикливается и выдает ошибки:
Thu Feb 11 17:04:03 2016] [error] [client x.x.x.x] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: http://www.domainsunder.ca/
поэтому я добавил
RewriteCond %{ENV:REDIRECT_STATUS} 200
на apache 2.2 .htaccess, но он по-прежнему имеет неправильный URL-адрес, как в http://somedomain.ca/sitepro/mypage вместо http://somedomain.ca/mypage
Сообщение об ошибке на экране СЕЙЧАС:
The requested URL /sitepro/domain_name_information/ was not found on this server.
Файл sitepro/index.php предназначен для отображения страницы и работает на apache 2.4.
Похоже, что mod_rewrite и .htaccess позволяют работать, так что это похоже на проблему с движком apache.
Что мне нужно добавить, чтобы это заработало?
У меня также была такая же проблема, когда я пытался заставить Wordpress работать на том же сервере 2.2.
Я не хочу запускать cpanel или перекомпилировать apache на этом компьютере с CentOS 6.x.