Php 如何在.htaccess中使用多个url重写规则

Php 如何在.htaccess中使用多个url重写规则,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,这是有效的 RewriteRule ^([a-zA-Z0-9_-\s]+)-([a-zA-Z0-9_-\s]+)\.html$ detail.php?category=$1&model=$2 RewriteRule ^([a-zA-Z0-9_-\s]+)\.html$ brand.php?brand=$1 这是有效的 RewriteRule ^([a-zA-Z0-9_-\s]+)-([a-zA-Z0-9_-\s]+)\.html$ detail.php?category=$1&

这是有效的

RewriteRule ^([a-zA-Z0-9_-\s]+)-([a-zA-Z0-9_-\s]+)\.html$ detail.php?category=$1&model=$2
RewriteRule ^([a-zA-Z0-9_-\s]+)\.html$ brand.php?brand=$1
这是有效的

RewriteRule ^([a-zA-Z0-9_-\s]+)-([a-zA-Z0-9_-\s]+)\.html$ detail.php?category=$1&model=$2
RewriteRule ^([a-zA-Z0-9_-\s]+)\.html$ brand.php?brand=$1
这不起作用

RewriteRule ^([a-zA-Z0-9_-\s]+)\.htm$ colour.php?colour=$8
只有两个规则正在工作。如何使用.htaccess使用多个重写规则

如果我像这样使用
^color/([a-zA-Z0-9_-\s]+)\.htm$color.php?color=$1
,那么它可以工作,而不是
color/
它不工作

RewriteRule ^([a-zA-Z0-9_-\s]+)\.htm$ colour.php?colour=$8
此问题似乎是由于启用了
多视图
。选项
MultiViews
Apache的内容协商模块使用,该模块在
mod_rewrite
之前运行,并使Apache服务器匹配文件扩展名。所以
/file
可以在URL中,但它将提供
/file.php

要禁用此功能,请使用.htaccess顶部的此行:

Options -MultiViews

RewriteEngine On
RewriteBase /

RewriteRule ^colour/([\w\s-]+)\.htm$ colour.php?colour=$1 [L,QSA,NC]

在你的最后一个例子中只有一个代码< >(代码)>设置,所以为什么/应该如何填充8美元?中间的连字符是错误的,使它<代码> RewriteRule ^([\W\s+])\HTM$$Loop.php?颜色= 1美元[L,QSA]
Marc B@我尝试使用$1但不起作用,这就是我更改它的原因,但$8也不起作用Anubhava@我更改代码但不起作用页面是空的。如果您遇到404或其他错误,请提供详细信息。你在浏览器中输入了什么URL?如果我粘贴此选项-多视图重写引擎在重写库上/它停止工作,如果我使用颜色/然后我的所有页面URL显示如下,但我在数据/图像文件夹中有一个徽标文件,这是所有页面链接中的问题您的评论没有任何意义。通过编辑您的问题发布完整的.htaccess,同时提供您在浏览器中输入的完整URL