Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 两个mod_重写规则的组合_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Apache 两个mod_重写规则的组合

Apache 两个mod_重写规则的组合,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我已经读过很多与这个话题相关的问题,但我找不到解决办法。我想结合两个mod_重写规则: /filename.html至/index.php?page=filename /文章/名称至/index.php?article=name 为此,我创建了以下两条规则: RewriteRule^(.*)\.html$index.php?页面=$1 RewriteRule^article/(.*)\.html$index.php?article=$1 只要它们单独使用,它们都可以正常工作。我认为错误可能是因为

我已经读过很多与这个话题相关的问题,但我找不到解决办法。我想结合两个mod_重写规则:

  • /filename.html/index.php?page=filename
  • /文章/名称/index.php?article=name
  • 为此,我创建了以下两条规则:

  • RewriteRule^(.*)\.html$index.php?页面=$1
  • RewriteRule^article/(.*)\.html$index.php?article=$1
  • 只要它们单独使用,它们都可以正常工作。我认为错误可能是因为第一条规则,它用/article/…重写了每个URL,也重写了URL,这就是为什么我尝试了以下方法,但仍然不起作用:

    RewriteEngine on
    RewriteRule ^article/(.*)\.html$ index.php?article=$1
    RewriteCond %{REQUEST_URI} !/articles$ 
    RewriteRule ^(.*)\.html$ index.php?page=$1
    
    如果我想去/test.html我已经得到了/php?page=test但是如果我输入/article/test.html我只得到/index.php?page=index.php/test而不是/index.php?article=test


    此外,我不希望它重写存储在/admin中的任何内容,而是
    重写cond%{REQUEST\u URI}/admin$
    也不起作用。

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