他の Web サイトの名前がパラメーターとして指定される Web アプリを開発しています。Apache Web サーバーで .htaccess ファイルを使用して URL を書き換えています。これは、.htaccess ファイルに記述したコードです。
RewriteEngine On
RewriteRule ^([a-z0-9\_\-]+(\.)[a-z0-9\_\.\-]+)[^(site.php)] site.php?url=$1
RewriteRule ^([a-z0-9\_\-]+(\.)[a-z0-9\_\.\-]+)[^(site.php)]/ site.php?url=$1
これを書い[^(site.php)]
たのは、site.php が私の正規表現に一致したため、パラメータとして site.php を渡していたからです。これは正しい方法で動作していますが、唯一の問題は、たとえば次のように書いているときに、パラメーターの最後の文字が省略されることです。
www.mywebsite.com/google.com
google.co
最後のを取り、省略しm
ます。を渡している場合はgoogle.co.in
、 を取りgoogle.co.i
、省略しn
ます。この理由は何ですか?