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
.htaccess htaccess将子文件夹重写为根目录_.htaccess_Mod Rewrite - Fatal编程技术网

.htaccess htaccess将子文件夹重写为根目录

.htaccess htaccess将子文件夹重写为根目录,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,在我的根文件夹中,我有一个.htaccess文件,它将URL重定向到一个子文件夹,如下所示。此文件夹包含即将出现的页面: RewriteCond %{HTTP_HOST} ^(www.)?myotherurl.com$ RewriteRule ^(/)?$ test [L] 当应用此规则时,我会得到以下url:http://myotherurl.com/test/ 现在我想将显示的URL重写(而不是重定向)到http://myotherurl.com通过创建嵌套的.htaccess。此文件应包

在我的根文件夹中,我有一个
.htaccess
文件,它将URL重定向到一个子文件夹,如下所示。此文件夹包含即将出现的页面:

RewriteCond %{HTTP_HOST} ^(www.)?myotherurl.com$
RewriteRule ^(/)?$ test [L]
当应用此规则时,我会得到以下url:
http://myotherurl.com/test/

现在我想将显示的URL重写(而不是重定向)到
http://myotherurl.com
通过创建嵌套的
.htaccess
。此文件应包含哪些内容?

请尝试此文件:

RewriteCond %{HTTP_HOST} ^(www\.)?myotherurl.com$
RewriteRule ^/?(.*)$ test/$1 [L] 
这会将所有内容放入目标目录。在你的情况下,你没能遮住圆点。在这种情况下,这并不重要,但它也将匹配域wwwamyotheurl.com

如果只有一个静态页面,也可以使用此规则:

RewriteRule ^ test/index.html [L] 

如果我理解正确,您可以尝试以下方法:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?myotherurl.com$
#Prevent loop
RewriteCond %{REQUEST_URI}  !/test
RewriteRule  ^(.*)/?$ test/$1 [R,L]

#Check the URI
RewriteCond %{REQUEST_URI}  /test
#Keep the original URL as resource
RewriteRule .* http://myotherurl.com [L]

感谢您的回复@felipe-alameda-a。我已经在我的子文件夹(test)的.htaccess文件中尝试了这个方法,但它不起作用。我应该把它放在root.htaccess文件夹还是测试子文件夹中?谢谢。RewriteBase是
/
(root),因此.htaccess文件必须位于root。尝试按原样测试规则,然后您可以根据.htaccess文件位置修改RewriteBase(如果需要)。我再次解释:我有一个域名被重定向到名为subfolder的子文件夹,如下所示。这工作正常:RewriteCond%{HTTP_HOST}^(www.)?mydomain.com$RewriteRule^(/)?$subfolder[L]使用此.htaccess我得到以下URL:mydomain.com/subfolder我想要的是从URL中删除子文件夹,如下所示:mydomain.comHello@felipe-alameda-a。我按如下方式尝试了您的代码,但出现了以下错误:页面没有正确重定向:RewriteBase/RewriteCond%{HTTP\u HOST}^(www\)?renochum.com$#阻止循环RewriteCond%{REQUEST\u URI}/renochums RewriteRule^(.*)/?$renochums/$1[R,L]#检查URI RewriteCond%{REQUEST_URI}/renochums#将原始URL保留为资源RewriteRule.[L]请复制并在我的答案中粘贴规则。根据您的评论,您缺少避免循环所必需的最后一个
http://
。谢谢您的回答@rekire。使用您的解决方案,我仍然得到myotherurl.com/test而不是myotherurl.com。您是否尝试了我的第一条、第二条或两条规则?