1

みんな..

URLに問題があります。このわかりやすいURLのようにURLを書き直します。

http://www.lankainstitute.com/1289/Mahesh Jayarathna HTTP/1./?1

しかし、私のURLの終わりに、この文字列「HTTP / 1./?1」が追加されました。

なぜこれなのか誰か教えてもらえますか?

これは私の.htaccessファイルからです

RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /profiles/tutors/index.php\?tutorCode=([0-9]+)&tutorName=([^&]+)&?([^\ ]+)
RewriteRule ^profiles/tutors/index\.php /%1/%2/?%3 [R=301,L,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/(.+)/$ /profiles/tutors/index.php?tutorCode=$1&tutorName=$2 [L,QSA]

コメントは大歓迎です。

ありがとうございました。

4

1 に答える 1

0

%{THE_REQUEST}マッチで正規表現を微調整する必要があります。tutorName=somethingクエリ文字列パラメーターの後に何もない場合HTTP/1.1、リクエスト内の の前のスペースは決して一致しないため、最終的に([^&]+)グループ化の一部になります。正規表現を次のように微調整してみてください (ルールでは、後方参照を に変更する必要があることに注意してください%4)。

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /profiles/tutors/index.php\?tutorCode=([0-9]+)&tutorName=([^&\ ]+)(&([^\ ]+))?
RewriteRule ^profiles/tutors/index\.php /%1/%2/?%4 [R=301,L,NE]
于 2012-08-13T04:15:25.317 に答える