我在重写规则方面遇到了一些问题。我有 2 个脚本,article.php?url=
我product.php?ulrprodus=
想为它们设置如下重写规则:
我的重写规则:
RewriteEngine On
Options +FollowSymLinks
RewriteRule ^([a-zA-Z0-9-/]+).html$ article.php?url=$1
RewriteRule ^([a-zA-Z0-9-/]+).html$ produs.php?urlprodus=$1
只有一个重写有效article.php?url=$1
。如果我反转顺序,也只有重写会起作用,但这一次product.php?urlprodus=$1
。
我需要两者能够发挥作用。
答案1
你需要有这样的东西
RewriteEngine On
Options +FollowSymLinks
RewriteRule ^article/([a-z0-9-/]+).html$ article.php?url=$1 [NC,L]
RewriteRule ^produs/([a-z0-9-/]+).html$ produs.php?urlprodus=$1 [NC,L]
因此重写匹配是不同的;现在你可以从说
www.domain.tld/article/myRewriteRule.html
到
www.domain.tld/article.php?url=myRewriteRule
在行动中;
$ cat .htaccess
RewriteEngine On
RewriteRule ^article/([a-zA-Z0-9-/]+).html$ article.php?url=$1 [NC,L]
RewriteRule ^produs/([a-zA-Z0-9-/]+).html$ produs.php?urlprodus=$1 [NC,L]
$ cat article.php
<?
print_r($_GET);
?>
$ curl -i localhost/article/hello-world.html
HTTP/1.1 200 OK
Date: Tue, 11 Nov 2014 12:57:38 GMT
Vary: Accept-Encoding
Content-Length: 35
Content-Type: text/html
Array
(
[url] => hello-world
)