大家..
我的网址存在问题。我像这个友好的网址一样重写我的网址。
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]
任何评论都非常感谢..
谢谢。答案 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]