我想在网站上使用网址www.x.com/cat/prod
首先,我想将www.x.com/cat/prod传递给www.x.com/index.php?cat=cat&prod=prod,我管理了这个:
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !\.(js|ico|gif|jpg|png|css|html|swf)$
RewriteRule ^(.*)/(.*)/?$ index.php?cat=$1&prod=$2 [B,QSA,L]
其次我想拥有它,如果有人访问www.x.com/index.php?cat=cat&prod=pro,它应该被301重定向到www.x.com/cat/prod并且我使用了这个:
RewriteCond %{THE_REQUEST} ^GET\s/+index\.php [NC]
RewriteCond %{QUERY_STRING} (^|&|\?)cat=(.*)&prod=(.*)($) [NC]
RewriteRule . /%2/%3? [R=301,L,NC]
问题是它给了我www.x.com/cat&prod=prod而不是www.x.com/cat/prod,我尝试了很多我在这里找到的东西,但我还是不能设法做对了。
任何建议表示赞赏。
答案 0 :(得分:1)
有这样的话:
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/+index\.php\?cat=([^&]+)&prod=([^&\s]+) [NC]
RewriteRule ^ /%1/%2? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !\.(js|ico|gif|jpg|png|css|html|swf)$
RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?cat=$1&prod=$2 [B,QSA,L]