htaccess-文件应仅在不带扩展名的情况下访问,并且带扩展名的文件应重定向到主网址

时间:2018-08-23 14:09:55

标签: php .htaccess

我的public_directory中有一个名为blog.php的文件,因此通常,用户可以使用mydomain.com/blog.php访问该文件,现在我想要两件事

  1. 用户应该能够使用mydomain.com/blog.php访问URL mydomain.com/blog
  2. 当用户尝试使用扩展名访问该文件时,应将其重定向到主页,即,如果用户在URL栏中输入mydomain.com/blog.php,则应将其重定向(外部重定向)到mydomain.com

第一个解决方案是

 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME}\.php -f
 RewriteRule ^(.*)$ $1.php [NC,L]

第二个解决方案是

RewriteRule ^(.+)\.php$ htpp://mydomain.com [R=301,L]

组合解决方案应该是

 RewriteRule ^(.+)\.php$ htpp://mydomain.com [R=301,L]
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME}\.php -f
 RewriteRule ^(.*)$ $1.php [NC,L]

两种方法各自都可以正常工作,但是当我将它们组合在一起时,它们无法按预期工作,即使将URL mydomain.com重定向到首页(mydomain.com/blog

那么上述解决方案为何无法按预期工作,什么是正确的解决方案

谢谢!

0 个答案:

没有答案