我对我的.htaccess代码有疑问。它正在执行以下操作:
此方法有效,因此,如果键入domain.com/page/
,浏览器将显示的内容domain.com/page.php
。如果输入domain.com/page
(不带斜杠),浏览器将重定向到domain.com/page/
。
但是,如果我键入domain.com/page.php
浏览器,则不会重定向到domain.com/page/
。
有没有一种方法可以将请求重定向domain.com/page.php
到domain.com/page/
?
这是我当前的.htaccess代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !(^$|\.[a-zA-Z0-9]{1,5}|/)$ %{REQUEST_URI}/ [R=301,L]
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^((/?[^/]+){1,2})/$ $1.php [L]
谢谢您的帮助!
对于显示的示例,请您尝试以下操作。在测试URL之前,请确保清除浏览器缓存。
RewriteEngine ON
##First 2 rules are added by OP itself.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !(^$|\.[a-zA-Z0-9]{1,5}|/)$ %{REQUEST_URI}/ [R=301,L]
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^((/?[^/]+){1,2})/$ $1.php [L]
##Newly added rule for removing .php from browser if .php is hit in it.
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [NC,L]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句