.htaccess 重写正则表达式:匹配任何内容,但不得影响其他规则

问题描述

我有这个 protected override void OnAppearing() { base.OnAppearing(); this.BindingContext = new viewmodels.Supervisor.MerchandisersPageviewmodel(); } 我想要当我输入 .htaccess 它会打开文件 exemple.com/home登录同样的东西它会打开 home.PHP

hani.PHP

我的问题当我回家或其他任何地方时,它会打开hani.PHP

我想要一个好的解决方案,因为我有很多页面

解决方法

问题是您的最后一次重写是无条件的,并且正在之前的其他重写完成后重写,从而将所有内容发送到hani.php

有两种解决方案(使用任何一种):

  1. 使用以下方法从最后一条规则中排除所有文件和目录:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ hani.php?link=$1 [L,QSA]
  1. 从最后一条规则中的匹配模式中排除点,以便 home.php 或任何包含点的请求与模式不匹配:
RewriteRule ^([^/.]+)/?$ hani.php?link=$1 [L,QSA]

请注意,/ 中的正则表达式模式中无需转义 mod_rewrite