Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 尝试使用重写规则作为用户名获取第一个匹配项_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Apache 尝试使用重写规则作为用户名获取第一个匹配项

Apache 尝试使用重写规则作为用户名获取第一个匹配项,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,作为每个URL请求中的用户,我找不到获得斜杠后第一马赫数的方法,例如: http://mysite.com/USER/modules/test/script.php to --> http://mysite.com/modules/test/script.php?u=USER 或 我不知道这是否可能,但我想一定是。 这是几次尝试后的.htaccess: Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^h

作为每个URL请求中的用户,我找不到获得斜杠后第一马赫数的方法,例如:

http://mysite.com/USER/modules/test/script.php
to --> http://mysite.com/modules/test/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是每个脚本的变量实路径


提前谢谢你,为我可怜的英式英语感到抱歉

第一个问题是
%{HTTP\u HOST}
变量包含主机:请求字段,它只是“mysite.com”,没有路径,没有协议。然后您需要在“用户”之后匹配并分组所有内容:


如果不需要外部重定向(例如,更改浏览器的位置字段),可以从重写标志中删除
,R

我尝试了这个解决方案,它几乎可以正常工作,问题是如何始终以用户身份在script.php之前获取最后一个/path/。例如:
mysite.com/user/script.php-->scipt.php?u=user GOOD!,但是mysite.com/user/modules/script.php-->script.php?u=modules坏!!还有mysite.com/modules/other/script.php-->script?u=其他也不好
@e2equiel添加了另一个条件以防止循环
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^http://mysite\.com/(.+?)$
RewriteRule ^.*$ http://mysite.com/$0?u=%1 [R,L]
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]
RewriteRule ^([^/]+)/(.*)$ /$2?u=$1 [L,R]