我无法找到在每个URL请求中以斜杠作为用户获取第一个马赫的方法,例如:
http://mysite.com/USER/modules/test/script.php
to --> http://mysite.com/modules/test/script.php?u=USER
或
http://mysite.com/USER/modules/test/path/to/other/script.php
to http://mysite.com/modules/test/path/to/other/script.php?u=USER
我不知道是否有可能,但我认为一定是这样。 几次尝试后,这是我的.htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^http://mysite\.com/(.+?)$
RewriteRule ^.*$ http://mysite.com/$0?u=%1 [R,L]
%1 是第一个斜杠后的用户名, $ 0 是每个脚本的变量实际路径。
提前致谢,抱歉我的英语很差!
答案 0 :(得分:1)
第一个问题是%{HTTP_HOST}
变量包含主机:请求字段,它只是“mysite.com”,没有路径,没有协议。然后你需要在“USER”之后匹配并分组所有内容:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]
RewriteRule ^([^/]+)/(.*)$ /$2?u=$1 [L,R]
如果您不想要外部重定向(例如更改浏览器的位置字段),则可以从重写标记中删除,R
。