Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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

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 .htaccess mod_基于域的重写_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Apache .htaccess mod_基于域的重写

Apache .htaccess mod_基于域的重写,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我的htaccess中有以下规则,我需要修改它以将变量添加到重新编写的url的末尾。基本上,我有两个指向同一主机的域,并且根据它使用的域显示不同的站点 RewriteCond %{HTTP_HOST} ^(www\.)?rrr\.me RewriteCond %{REQUEST_URI} !^/rrr Rewriterule ^(.*)$ /rrr/$1 [L] 如果有人进入rrr.me或www.rrr.me他们会在我网站的rrr目录中找到index.php。这太棒了 我现在需要能够向ind

我的htaccess中有以下规则,我需要修改它以将变量添加到重新编写的url的末尾。基本上,我有两个指向同一主机的域,并且根据它使用的域显示不同的站点

RewriteCond %{HTTP_HOST} ^(www\.)?rrr\.me 
RewriteCond %{REQUEST_URI} !^/rrr
Rewriterule ^(.*)$ /rrr/$1 [L]
如果有人进入
rrr.me
www.rrr.me
他们会在我网站的rrr目录中找到index.php。这太棒了

我现在需要能够向index.php添加一个变量。因此,有人会键入
rrr.me/abc
,它会以这种方式将abc附加到index.php的末尾
index.php?var1=abc

在奥拉夫·迪奇(Olaf Dietsche)在评论中提出建议后,重新编写新规则

RewriteCond %{HTTP_HOST} ^(www\.)?rrr\.me 
RewriteCond %{REQUEST_URI} !^/rrr
RewriteCond %{REQUEST_URI} !/assets/
Rewriterule ^.*$ /rrr/index.php?rrr=$0 [L]

RewriteCond %{HTTP_HOST} ^(www\.)?rrr\.me
RewriteCond %{REQUEST_URI} !^/rrr
Rewriterule ^assets/.*$ /rrr/$0 [L]

将请求的URL追加为查询字符串

Rewriterule ^.*$ /rrr/index.php?var1=$0 [L]
要排除
资产
目录,必须使用附加的

对于资产文件,可以使用类似的重定向

RewriteCond %{HTTP_HOST} ^(www\.)?rrr\.me
RewriteCond %{REQUEST_URI} !^/rrr
Rewriterule ^assets/.*$ /rrr/$0 [L]

谢谢你。我将规则的第三行替换为您的行,现在我收到一个内部服务器错误。有什么想法吗?@superphonic您请求了哪个URL?您有权访问服务器日志吗?添加重写规则后,我转到rrr.me并获得一个内部服务器错误。当我把我的重写规则放回原处时,它就像预期的那样工作。我没有更改RewriteCond。@superphonic我更改了正则表达式以包含根目录。请看更新的答案。哦哦,非常接近。变量现在被传递到index.php OK。但是现在我的图像、js文件和css文件都找不到了。它们位于/rrr目录中名为“资产”的文件夹中。资产被提取为变量并附加到index.php文件中。对不起,可能应该告诉你那个目录中有一个子目录。我修改了最后的规则。
!资产
条件必须添加到第一条规则中,第二条规则必须具有!rrr规则也是如此。希望对你有帮助,马上!谢谢你的帮助,非常感谢。我也学到了不少:——)
RewriteCond %{HTTP_HOST} ^(www\.)?rrr\.me
RewriteCond %{REQUEST_URI} !^/rrr
Rewriterule ^assets/.*$ /rrr/$0 [L]