【发布时间】:2012-06-20 16:52:39
【问题描述】:
我的.htaccess文件如下:
Options -Multiviews
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php
我遇到的问题是,当我尝试在没有 www 的情况下访问我的网站时。前缀,.php 扩展名被添加到地址,这通常会导致问题。例如,如果我尝试使用地址 example.com 访问我的主页,该地址将转换为 www.example.com/.php。我要万维网。要添加,但最后添加的 .php 扩展名只会导致错误。我该如何解决这个问题?
【问题讨论】:
-
这是不安全的重写方式"/x"->"/x.php"
-
RewriteRule 无法更改浏览器地址栏中的 URL。您需要
[R](重定向)标志将浏览器重定向到新的 URL。 -
什么是删除 php 扩展?
-
Jon Lin 提出的好问题,当您没有 RewriteRule 可以做到这一点时,如何在 ~any~ 的情况下将 php 从地址栏中“删除”。如果您首先关闭 .php,您的规则将只允许访问 .php 文件。
-
那么我如何让它删除 php?如果我尝试在没有 www 的情况下访问我的网站,为什么会自动添加 .php 扩展名。前缀?