mod_rewriteを使用してSEOURLを作成しています。基本的に、これは次のように機能します。すべてのリクエストは.htaccessによってキャッチされ、phpスクリプト(たとえば、transform.php)にリダイレクトされます。transform.phpはSEOURLを解析し、それを通常のURLに変換してから、index.phpを含め、アプリケーション(index.php)の出力をキャッチし、RegExを使用してすべての通常のURLをSEOURLに変換します。したがって、重要なステップは、すべてのリクエストが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/と入力し、サイトがローカルcompにある場合、すべてが正常に機能します。http://mysite.com/は.htaccessによってキャッチされ、さらに処理するためにtransform.phpに送信されます。ただし、別のサーバーでは、この行は機能しません(たとえば、http://mysite-other-server.com/の場合)。この.htaccess行は単にリクエストをキャッチしません。ただし、 http://mysite-other-server.com/index.phpではすべて正常に機能します。
さらに、私はこの2番目のサーバーにいくつかのサイトを持っており、それらのいくつかは機能しますが、機能しないものもあります。一部のURLは最初にhttp://mysite-other-server.com/index.phpに解決され、次に.htaccessによって処理されますが、他のURLは解決されず、.htaccessはhttp://を処理します。 mysite-other-server.com/
私は非常に混乱していて、運がなくてグーグルを試しました。どんな助けでも大歓迎です。