具有htaccess冲突问题的SEO URL

时间:2013-01-13 01:40:55

标签: .htaccess

我的.htaccess有一个小故障。我用Google搜索并尝试了一些没有任何结果的事情,所以我不得不求助于 SOF

考虑遵循htaccess规则;

# CATEGORY LISTING
ReWriteRule ^listing/category/(.*)/(.*)/(.*)/(.*) ?module=listing&type=category&get=$1&c_id=$2&c_name=$3&page=$4 [L]

ReWriteRule ^listing/category/(.*)/(.*)/(.*) ?module=listing&type=category&get=$1&c_id=$2&c_name=$3 [L]

# CATEGORY FILTER
ReWriteRule ^listing/category/(.*)/(.*)/(.*) ?module=listing&type=category&orderType=$1&order=$2&page=$3 [L]

ReWriteRule ^listing/category(.*)/(.*) ?module=listing&type=category&orderType=$1&order=$2 [L]

ReWriteRule ^listing/category/(.*) ?module=listing&type=category&page=$1 [L]

ReWriteRule ^listing/category ?module=listing&type=category [L]

这里的问题是2条规则相互冲突;

这条规则;

ReWriteRule ^listing/category/(.*)/(.*)/(.*) ?module=listing&type=category&get=$1&c_id=$2&c_name=$3 [L]

与此规则冲突;

ReWriteRule ^listing/category/(.*)/(.*)/(.*) ?module=listing&type=category&orderType=$1&order=$2&page=$3 [L]

无论如何都要解决这个冲突?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

  

无论如何都要解决这个冲突?

要解决此问题,您需要使get查询字符串和order查询字符串的URI互斥。你有两个完全相同的正则表达式,所以第二个将永远应用,因为任何与第二个匹配的东西都只会被第一个处理。

例如,您可以将其中一个看作:/order/category/(.*)/(.*)/(.*)和另一个/listing/category/(.*)/(.*)/(.*)。这两个URI是互斥的,永远不会发生冲突。

此外,您应该将所有(.*)更改为([^/]*),因为(.*)并非贪婪,并会吞噬其他路径。