这个mod_rewrite代码如何正确解析?

use*_*493 3 php apache .htaccess

我的.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
Run Code Online (Sandbox Code Playgroud)

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

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

cha*_*aos 5

你要问的特殊行为是因为规则

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

是301重定向; 它指示浏览器发起一个全新的HTTP请求.的L唯一原因(只能引起)它是用于执行的最后一个规则该请求 ; 新请求带有正确的主机名,然后继续.