Я использую mod_rewrite для создания SEO-URL. В основном, это работает следующим образом:
все запросы перехватываются .htaccess и перенаправляются в скрипт php (скажем, transform.php). transform.php анализирует SEO-URL и преобразует его в обычный URL-адрес, затем включает index.php, затем перехватывает выходные данные приложения (index.php) и использует RegEx для преобразования всех обычных URL-адресов в SEO-URL.
Поэтому жизненно важным шагом является выполнение всех запросов через transform.php. Мой .htaccess довольно длинный, но мне удалось ограничить его следующими строками.
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^index\.php?(.*)$ ./transform.php?p=$1&%{QUERY_STRING} [L]
</IfModule>
Проблема возникает с начальным (корневым) URL-адресом: http://mysite.com/. Когда я набираю http://mysite.com/ и сайт расположен на моем локальном компе, все работает нормально. http://mysite.com/ перехватывается .htaccess и отправляется в transform.php для дальнейшей обработки. Однако на другом сервере эта строка не работает (скажем, для http://mysite -other-server.com / ). Эта строка .htaccess просто не перехватывает запрос. Все отлично работает для http://mysite -other-server.com / index.php .
Более того, у меня есть несколько сайтов на этом втором сервере, и некоторые из них работают, а некоторые нет. Для некоторых из них URL-адрес сначала разрешается в http://mysite -other-server.com / index.php , а затем обрабатывается .htaccess, в то время как для других URL-адрес не разрешается, а .htaccess работает с http://mysite -other-server.com /
Я очень запутался и попробовал гуглить без всякой удачи. Любая помощь высоко ценится.