.htaccess redirect FROM subfolder to domain name

2020-02-09 04:51发布

问题:

I had website content in a subfolder (http://mydomain.com/subfolder/index.php), now I copied everything over to the root folder (http://mydomain.com/index.php).

I would like to redirect all the visitors that have bookmarked the old page to the new content (at least to the new index.php) using .htaccess.

Is this correct:

RewriteEngine on
RewriteRule /subfolder/^(.*)$ http://mydomain.com [R=301,L]

?

And where would I place the .htaccess file, in the subfolder or the root folder?

回答1:

Placing the following .htaccess in / (where your index.php is located) should do the trick:

RewriteEngine on
RewriteRule ^subfolder/(.*)$ /$1 [R=301,L]

Or you could place the following .htaccess in /subfolder:

RewriteEngine On
RewriteRule ^(.*)$ /$1 [R=301,L]

Note that the () around .* and the $1 redirects /subfolder/someFile.php to /someFile.php. If you skip it, everything in /subfolder redirects to /.



回答2:

Try:

RewriteEngine On
RewriteRule ^subfolder/index.php$ /index.php[NC,L,R]


回答3:

Thanks to @mariusnn in the comments, I was able to solve this issue.


❌ Not Working: .htaccess redirect FROM subfolder to domain name

RewriteEngine on

RewriteRule ^subfolder/(.*)$ /$1 [R=301,L]

✅ Working: .htaccess redirect entire subdomain "/subdomain/" and files "/subdomain/file_01.php" within are redirected to domain name "example.com"

RewriteEngine on

RewriteRule ^subfolder/.*$ / [R=301,L]

*Note that the () around .* and the $1 redirects /subfolder/someFile.php to /someFile.php. If you skip it, everything in /subfolder redirects to /.



回答4:

This does the trick:

RedirectMatch 301 ^/subfolder$ http://yourdomain.tld/


回答5:

Tried all answers here. This is what worked for me:

RewriteEngine on
RewriteBase /
RewriteRule ^subfolder/(.*)$ /$1 [R=302,NC,L]

Change R=302 to R=301 after you've validated the changes.