如果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/
而不更改可见的网址。如何重写上面的代码才能实现这一目标?
答案 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]