我将主要的Joomla安装在子目录中。我过去常常将用户从www.mysite.com重定向到www.mysite.com/subdir,这样就可以将实时网站完全脱位了。
我实际上并不喜欢所有URL都以子目录/ subdir /开头的事实(我也认为这对SEO不太好)所以我修改了我的.htaccess文件:
RewriteEngine On
RewriteBase /
# Add trailing slash if path does not contain a period or end with a slash
RewriteCond %{REQUEST_URI} !(\.|/$)
RewriteRule (.*) http://www.mysite.com/$1/ [R=301,L]
#Change http://yoursite.com to http://www.mysite.com (Optional)
RewriteCond %{HTTP_HOST} ^mysite.com$
RewriteRule ^/?(.*)$ http://www.mysite.com/$1 [R=301,L]
#Rewrites http://www.mysite.com/subdir to http://www.mysite.com/
RewriteRule ^(.*)$ subdir/$1 [L]
我还编辑了Joomla的配置文件!现在,网站中的所有链接都指向(正确)www.main.com/theirquery,并指向www.main.com/subdir/theirquery
然而,现在,所有旧的链接(例如已发布到其他网站的链接)似乎已被破坏(404):我该如何解决这个问题? 我想我必须将它们重定向(301)到新的无子目录地址,这将是(另一次)使用我发布的htaccess静默重定向。 但我不知道怎么做!
提前谢谢!
答案 0 :(得分:0)
您可以尝试在configuration.php中设置$ live_site参数吗?您需要直接编辑它,而不是通过Joomla的后端编辑。
答案 1 :(得分:0)
您需要将此添加到您的htaccess。
RewriteRule ^subdir/(.*)$ /$1 [R=301,NC,L]
答案 2 :(得分:0)
这是不可能的,因为旧的链接不是物理的,而是存储在数据库中,因此如果不再次通过数据库,就不可能重定向它们。