1

每个人..

我的网址有问题。我像这个友好的网址一样重写我的网址。

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

但是在我的网址末尾添加了这个字符串“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 回答