将documentroot重定向到conf apache或.htccess中的另一个文件夹

时间:2019-03-21 19:08:55

标签: apache http mod-rewrite url-rewriting

美好的一天

我想在请求子目录时重写url 当用户请求

  

172.0.0.1/url

我想重写以使该网址指向

  

172.0.0.1/url/url

或documentroot在/ var / www / html / url / url中,请指向

  

172.0.0.1/url

2 个答案:

答案 0 :(得分:3)

这里的窍门是避免创建重写和重定向循环。您可以将此代码放在根目录htaccess中

RewriteEngine On

# Redirect /url/url/xxx to /url/xxx
RewriteCond %{THE_REQUEST} \s/(url)/url/(.*)\s [NC]
RewriteRule ^ /%1/%2 [R=301,L]

# Internally rewrite back /url/xxx to /url/url/xxx
RewriteRule ^(url)/((?!url/).*)$ /$1/$1/$2 [L]

答案 1 :(得分:0)

您可以使用.htaccess/url重定向到/url/url

只需在/var/www/html/中创建.htaccess文件,其中包含以下内容:

RewriteEngine on
RewriteRule ^/?url/(.*)$ /url/url/$1 [R,L]

这会将所有传入的请求重定向到/url,并将它们重定向到/url/url

但是您不能将来自/url/url的请求重定向到/url,因为我们已经重定向了/url的请求,这将导致catch 22,并且浏览器将继续在{ {1}}和/url