该脚本运行完美,它强制使用尾部斜杠并隐藏 .php 扩展名
但!它不会将人们直接重定向到 .php 扩展名。
我怎样才能强制人们直接进入 file.php 到 /file/
RewriteEngine On
RewriteRule ^(.*)/$ /$1.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.mysite.com/$1/ [R=301,L]
答案1
我认为这里可能存在一些错误:
RewriteCond %{REQUEST_FILENAME} !-f
这表明下一个规则仅当文件名不是文件时才会发生,而你的文件.php
名是文件,因此会触发 false。
这应该可以工作,或者至少可以让你顺利完成任务:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ $1.php [L]
!-d
确保请求的路径不是目录;这解决了诸如images/
导致images.php
图像目录以外的潜在问题。