要在Apache的.htaccess文件中将/en/file.php转换为file.php?lang=en,您需要使用RewriteEngine和RewriteRule。以下是一个示例配置:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^en/(.*)$ $1?lang=en [L,QSA]
这个配置的解释如下:
RewriteEngine On
:启用Apache的URL重写模块。RewriteCond %{REQUEST_FILENAME} !-f
:检查请求的文件是否存在,如果不存在,则继续执行下一个条件。RewriteCond %{REQUEST_FILENAME} !-d
:检查请求的目录是否存在,如果不存在,则继续执行下一个规则。RewriteRule ^en/(.*)$ $1?lang=en [L,QSA]
:这是一个重写规则,它将符合条件的URL重写为新的URL。^en/(.*)$
表示以/en/开头的任何URL,$1?lang=en
表示将/en/替换为空,并添加?lang=en
查询字符串。[L,QSA]
表示这是最后一个规则,并且如果原始URL中存在查询字符串,则将其附加到新的URL。这个配置将允许您的应用程序将/en/file.php转换为file.php?lang=en,而不会影响到实际的文件路径。