【发布时间】:2021-12-22 16:26:39
【问题描述】:
我认为一个会覆盖另一个,我不太熟悉.htaccess 规则中的条件
这是当前的:
RewriteEngine on
RewriteRule ^$ /index.php [L]
RewriteRule ^([^/]*)$ /article.php?slug=$1 [L]
RewriteRule ^([^/]*)$ /cat.php?id=$1 [L]
如果我按原样使用,则 cat RewriteRule 将不起作用,如果我指定路径 ^cat/([^/]*)$ 它将起作用,所以我假设文章 RewriteRule 覆盖了后者。我怎样才能使这两个规则共存?任何帮助将不胜感激。
【问题讨论】:
-
"如果我指定路径
^cat/([^/]*)$它会" - 那你为什么不保留它呢?您要匹配哪些 URL?对/foo的请求会发生什么? -
您好,感谢您的评论。就是这样,当请求 /foo 时,它将获取我正在使用的文章 slug ID,我希望能够对 cat id fetch 使用相同的规则,抱歉,如果我使用了不相关的术语
-
“我希望能够对 cat id fetch 使用相同的规则” - 但是你如何区分应该发送到
article.php的 URL 和应该发送到 @987654328 的 URL @?为什么要将/foo发送到article 而不是cat?/bar呢? -
因为他们不会共享相同的 ID/Slug ?
-
那么,它们的区别是什么?您如何确定应该将一个 URL 发送到
article.php,而将另一个 URL 发送到cat.php?
标签: apache .htaccess mod-rewrite