在我的友好URL中的情况

时间:2012-08-13 04:02:40

标签: .htaccess

大家..

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

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]

任何评论都非常感谢..

谢谢。

1 个答案:

答案 0 :(得分: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]