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

时间:2015-01-28 15:27:45

标签: .htaccess

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

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

以下是:

  • 自动将用户重定向到我网站的https://版本
  • 如果没有更改可见网址的/filename地图,则将/filename.php重定向到/filename/

但是现在我想将用户从/map/重定向到名为/map。php的文件,如果没有名为/map/的地图的话。当然,我不想显示文件名的.php部分,因此如果地图/filename不存在,我基本上希望用户被重定向到/filename/而不更改可见的网址。如何重写上面的代码才能实现这一目标?

1 个答案:

答案 0 :(得分:2)

您可以使用:

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}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ $1.php [L]