3

我的 .htaccess 文件如下:

Options -Multiviews
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php

它有效,但我想知道它是如何工作的。例如,如果我输入example.com/main,我会在www.example.com/main.php. 如果代码告诉重写在添加到开头.php后停止,我如何获得扩展名?www.example.com

编辑:或者我应该只为了登录记住的用户而创建一个唯一的 ID?

4

1 回答 1

5

您要询问的特定行为是因为规则

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

是 301 重定向;它指示浏览器发起一个全新的 HTTP 请求。唯一的L原因(只能导致)它是为该请求执行的最后一条规则;新请求带有正确的主机名并继续前进。

于 2012-06-27T15:12:12.667 回答