我陷入了一个看似简单的问题。 我已将我的网站的所有内容从根目录移动到子文件夹,如
www.example.com
要
www.example.com/shop
现在,我想将所有旧网页重定向到新网址。
我在root的.htaccess中尝试了什么,但没有工作:
RewriteEngine On
RewriteRule ^(shop)($|/) - [L] // To prevent loops
RewriteRule ^(.*)$ http://www.example.com/shop$1 [R=301,L]
但现在,所有旧页面都重定向到example.com/shop
编辑:
移动之后,我不得不将以下代码添加到子目录的htaccess中以使其工作:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /shop/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /shop/index.php [L]
</IfModule>
答案 0 :(得分:1)
您可以使用此规则:
RewriteEngine On
RewriteCond %{THE_REQUEST} !/shop/ [NC]
RewriteRule !^shop/ /shop%{REQUEST_URI} [NC,R=301,L]