我在子文件夹(http://mydomain.com/subfolder/index.php)中有网站内容,现在我将所有内容复制到根文件夹(http://mydomain.com/index.php)。
我想使用.htaccess将所有已将旧网页加入书签的访问者重定向到新内容(至少是新的index.php)。
这是否正确:
RewriteEngine on
RewriteRule /subfolder/^(.*)$ http://mydomain.com [R=301,L]
我将.htaccess文件放在子文件夹或根文件夹中的哪个位置?
答案 0 :(得分:27)
将以下.htaccess
放在/
(index.php所在的位置)应该可以解决问题:
RewriteEngine on
RewriteRule ^subfolder/(.*)$ /$1 [R=301,L]
或者您可以将以下.htaccess
放入/subfolder
:
RewriteEngine On
RewriteRule ^(.*)$ /$1 [R=301,L]
请注意()
周围的.*
和$1
重定向/subfolder/someFile.php
至/someFile.php
。如果您跳过它,/subfolder
中的所有内容都会重定向到/
。
答案 1 :(得分:1)
尝试:
RewriteEngine On
RewriteRule ^subfolder/index.php$ /index.php[NC,L,R]
答案 2 :(得分:1)
由于评论中的@mariusnn,我得以解决此问题。
❌不起作用:.htaccess从子文件夹重定向到域名
RewriteEngine on
RewriteRule ^subfolder/(.*)$ /$1 [R=301,L]
✅Working :. htaccess将整个子域“ / subdomain /”重定向,并将其中的文件“ /subdomain/file_01.php”重定向到域名“ example.com”
RewriteEngine on
RewriteRule ^subfolder/.*$ / [R=301,L]
*请注意,()
周围的.*
和$1
将/subfolder/someFile.php
重定向到/someFile.php
。如果您跳过它,则/subfolder
中的所有内容都会重定向到/
。
答案 3 :(得分:1)
这可以解决问题:
RedirectMatch 301 ^/subfolder$ http://yourdomain.tld/
答案 4 :(得分:0)
在这里尝试了所有答案。这对我有用:
RewriteEngine on
RewriteBase /
RewriteRule ^subfolder/(.*)$ /$1 [R=302,NC,L]
在确认更改后,将R=302
更改为R=301
。