1

我的 .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 扩展名只会导致错误。我该如何解决?

4

3 回答 3

1

我相信问题出在你的最后一行。执行第一条规则后,Mod Rewrite 不会停止。尝试将最后一个规则修饰符添加到重定向规则:

RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
于 2012-06-27T13:50:12.457 回答
0

您需要告诉 apache 在 301 重定向后停止处理规则,通过添加 L 来执行此操作 - 例如:

RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

另外:如果您在第一行启用多视图并删除最后 3 行,您会做得更好;)

于 2012-06-27T13:48:09.510 回答
0

从 .htaccess 中删除以下行并尝试..

RewriteRule ^(.*)$ $1.php
于 2012-06-27T13:54:00.347 回答