如果 /map/ 不存在,则使用 .htaccess 将 /map/ 重定向到 /file.php

Redirect /map/ to /file.php if /map/ does not exist using .htaccess

如果 /map/ 不存在,我正在尝试将用户从 www.hostname.com/map/ 重定向到 www.hostname.com/map.php。我已经有了以下 .htaccess 文件:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ .php [NC,L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

执行以下操作:

但现在我想将用户从 /map/ 重定向到一个名为 /map.php 的文件,如果没有名为 /map/ 的地图的话。当然,我不想显示文件名的 .php 部分,所以我基本上希望如果地图 /filename/ 不存在而不更改可见 [,则将用户重定向到 /filename =38=]。我如何重写上面的代码才能实现这一点?

您可以使用:

RewriteEngine On
RewriteBase /

# keep redirect rule before internal routing one
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=301]

# if matching .php file exists forward it
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/\.php -f [NC]
RewriteRule ^(.+?)/?$ .php [L]