重写规则被忽略

重写规则被忽略

我在重写规则方面遇到了一些问题。我有 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
)

相关内容