我在托管平台http://example2.com上有一个托管域http://example.com。
问题是,如果我转到http://example2.com/example2/fr,我就不会被重定向到http://example2.com/fr并且我已经尝试了解决方案,但仍然有重定向循环。
在public_html文件夹中,有一个子文件夹/ example2,其中包含http://example2.com的文件
> public_html
- .htaccess
- index.php
> assets
> css
> js
> example2
- .htaccess
- index.html
> fr
- index.html
> en
- index.html
现在,在public_html文件夹中,我的.htaccess文件中的重定向规则是:
<IfModule mod_rewrite.c>
RewriteEngine on
# Redirect the example2 to the subfolder /example2
RewriteCond %{HTTP_HOST} ^(www\.)?example2\.com$ [NC]
RewriteRule !^example2/ /example2%{REQUEST_URI} [L,NC]
</IfModule>
在/ example2文件夹中,我的htaccess文件重定向如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteRule ^index\.html$ / [R=301,L]
RewriteRule ^(.*)/index\.html$ /$1 [R=301,L]
#RewriteRule ^(.*)$ /$1 [R=301,L]
</IfModule>
答案 0 :(得分:1)
您的/example2/.htaccess
应该是这样的:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteRule ^index\.html$ / [R=301,NC,L]
RewriteRule ^(.*)/index\.html$ /$1 [R=301,NC,L]
# remove /example2/ from URLs
RewriteCond %{THE_REQUEST} \s/+example2(/\S*)\s [NC]
RewriteRule ^ %1? [R=301,L,NE]