.htaccess重写规则,最后一个查询字符串被追加到url

时间:2011-10-20 13:25:38

标签: .htaccess content-management-system directoryindex

您好我制作一个cms网站,我需要重写我的网址

目前我的网址是http://www.example.com/index.php?link=pages&cmsid=2&cmsLink=Carpet
它指的是 cmsLink
我希望我的网址像http://www.example.com/Carpet一样 我使用以下代码

Options +FollowSymLinks
Options +Indexes
RewriteEngine on
RewriteBase /
RewriteRule ^index.php?link=(.*)&cmsid=(.*)&cmsLink=(.*) $3

2 个答案:

答案 0 :(得分:2)

要获得此网址,不能直接使用.htaccess
我也在htacess中使用正则表达式和其他语言

我把删除cmsid

目前我的网址是http://www.example.com/index.php?link=pages&cmsLink=Carpet

RewriteCond %{REQUEST_URI} !/admin
RewriteCond %{REQUEST_URI} !^/(.*).php
RewriteBase /
RewriteRule ^([^/]+)/?$ index.php?link=pages&cmsLink=$1&%{QUERY_STRING} [L]

它返回给我http://www.example.com/Carpet

答案 1 :(得分:1)

尝试将您的上一条规则更改为:

RewriteRule ^(.+)$ /index.php?link=pages&cmsid=2&cmsLink=$1

由于您希望拥有http://www.example.com/Carpet之类的网址,因此您的网址中的cmsidlink必须硬编码为2pages