如果 /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}
执行以下操作:
- 自动将用户重定向到我网站的
https://
变体
- 如果没有名为
/filename/
的地图而不更改可见 url ,则将 /filename
重定向到 /filename.php
但现在我想将用户从 /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]
如果 /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}
执行以下操作:
- 自动将用户重定向到我网站的
https://
变体 - 如果没有名为
/filename/
的地图而不更改可见 url ,则将
/filename
重定向到 /filename.php
但现在我想将用户从 /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]