如何使用htaccess匹配和重写URL字符串的一部分

时间:2014-12-01 16:08:30

标签: regex .htaccess

我更改了网站的工作方式,但我希望它可以向后兼容已保存的网址

如果用户有播放?"在网址中,我希望网站真正指向" play&"

即。 http://domain.com/play?v=foo&s=bar变为http://domain.com/play&v=foo&s=bar

谢谢,

迈克

编辑:

使用这些可能影响建议解决方案的重写规则,

/ play已被视为.htaccess中的$ z变量:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.+)/?$ index.php?z=$1 [L]

1 个答案:

答案 0 :(得分:0)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On

RewriteCond %{THE_REQUEST} /\?z=(play)(\S*)\s [NC]
RewriteRule ^ /%1?%2 [R=302,L,NE]

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

RewriteRule ^(.+)/?$ index.php?z=$1 [L,QSA]