相同的RewriteCond和多个RewriteRule

时间:2017-04-01 07:56:07

标签: regex apache .htaccess mod-rewrite

我的应用程序中有一些评论规则,例如:

RewriteCond %{HTTP_HOST} ^(.*)-street\.
RewriteRule ^(.*)/(.*)\.html$ index.php?street=%1&$1=$2 [L]
RewriteCond %{HTTP_HOST} ^(.*)-street\.
RewriteRule ^(.*)$ index.php?street=%1 [L]

我希望如果我输入:example-street.example.com/type/param.html它会使用此规则:

RewriteRule ^(.*)/(.*)\.html$ index.php?street=%1&$1=$2 [L]

但遗憾的是它使用的指定较少。

我应该在代码中添加/更改哪些内容才能获得预期结果?

修改 我想得到这个结果:

example-street.example.com/type/param.html -> index.php?street=example&type=param example-street.example.com/whateverelse -> index.php?street=example

1 个答案:

答案 0 :(得分:0)

检查一下,希望它能正常工作。

Check .htaccess here

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/type/param.html$
RewriteCond %{HTTP_HOST} ([a-z]+)\-([a-z]+)\.example\.com$
RewriteRule ^([a-z]+)\/([a-z]+)\.html$ /index.php?%2=%1&$1=$2    [R=301,L,QSA]

RewriteCond %{REQUEST_URI} ^/[a-z]+$
RewriteCond %{HTTP_HOST} ([a-z]+)\-([a-z]+)\.example\.com$
RewriteRule ^.*$ /index.php?%2=%1    [R=301,L,QSA]