【问题标题】:Combination of two mod_rewrite rules两个 mod_rewrite 规则的组合
【发布时间】:2014-03-24 01:38:34
【问题描述】:

我已经阅读了许多与此主题相关的问题,但我找不到解决方案。我想结合两个 mod_rewrite 规则:

  1. ... /filename.html ... /index.php?page=filename
  2. ... /article/name ... /index.php?article=name

为此,我创建了以下两条规则:

  1. RewriteRule ^(.*)\.html$ index.php?page=$1
  2. RewriteRule ^article/(.*)\.html$ index.php?article=$1

只要单独使用,它们都可以正常工作。我认为错误可能是由于第一条规则而发生的,它用 /article/... 重写了每个 URL,这就是为什么我尝试了以下方法,但它仍然不起作用:

RewriteEngine on
RewriteRule ^article/(.*)\.html$ index.php?article=$1
RewriteCond %{REQUEST_URI} !/articles$ 
RewriteRule ^(.*)\.html$ index.php?page=$1

如果我尝试转到 ... /test.html 我已经得到 ... /index.php?page=test 但是如果我输入 ... /article/test.html 我只得到 ... /index.php?page=index.php/test 而不是 ... /index .php?article=test.

此外,我不希望它重写存储在 /admin 中的任何内容,但 RewriteCond %{REQUEST_URI} !/admin$ 也不起作用。

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    我自己找到了解决方案。第 3 行的条件是假的,它实际上应该说 RewriteCond %{REQUEST_URI} !/article/(.*)\.html$ 以便包含目录 ... /article/ 中的所有内容,而不仅仅是 ... /article/ 本身。

    【讨论】:

      猜你喜欢
      • 2016-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-23
      • 2012-04-22
      相关资源
      最近更新 更多