无法从htaccess重写url获取变量

时间:2015-03-26 10:54:49

标签: .htaccess

我无法从htaccess网址获取变量

RewriteCond %{THE_REQUEST} \s/+.+?\.php\?page_id=([^\s&]+)&action=([^\s&]+) [NC]
RewriteRule . %1/%2.html? [R=301,L]
RewriteRule ^([^/]+)/([^.]+)\.html$ page.php?page_id=$1&action=$2 [NC,L,QSA]

#redirect localhost/apnaujjain/page.php?page_id=1&album_id=1&action=contacts to localhost/apnaujjain/1/1/contacts.html
RewriteCond %{THE_REQUEST} \s/+.+?\.php\?page_id=([^\s&]+)&album_id=([^\s&]+)&action=([^\s&]+) [NC]
RewriteRule . %1/%2/%3.html? [R=301,L]

RewriteRule ^([^/]+)/([^/]+)/([^.]+)\.html$ page.php?page_id=$1&album_id=$2&action=$3 [NC,L,QSA]

现在我的最终网址应该是

loalhost/apnaujjain/1/1/contacts.html and all parameters should be get individualy

现在url正在创建ok,但我无法通过url获得专辑ID,它带有第三个变量动作但不是专辑ID。任何人都可以在这里建议我做错了...先谢谢

1 个答案:

答案 0 :(得分:1)

第二条规则中的正则表达式需要进行一些调整:

RewriteCond %{THE_REQUEST} \s/+.+?\.php\?page_id=([^\s&]+)&album_id=([^\s&]+)&action=([^\s&]+) [NC]
RewriteRule . %1/%2/%3.html? [R=301,L]

RewriteRule ^([^/]+)/([^/]+)/([^./]+)\.html$ page.php?page_id=$1&album_id=$2&action=$3 [NC,L,QSA]

RewriteCond %{THE_REQUEST} \s/+.+?\.php\?page_id=([^\s&]+)&action=([^\s&]+)\s [NC]
RewriteRule . %1/%2.html? [R=301,L]

RewriteRule ^([^/]+)/([^./]+)\.html$ page.php?page_id=$1&action=$2 [NC,L,QSA]