Как исправить старые ссылки после изменения .htaccess для установки Joomla в подпапке? - PullRequest
0 голосов
/ 27 января 2011

У меня есть основная установка Joomla в подкаталоге.Раньше я перенаправлял пользователей с www.mysite.com на www.mysite.com/subdir с помощью 301, чтобы живой сайт был полностью смещен.

Мне не нравится тот факт, что все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 и noto на www.main.com/subdir/theirquery

Теперь, однако, все старые ссылки (которые имеютбыл опубликован на других веб-сайтах, например), кажется, не работает (404): как я могу решить эту проблему?Я думаю, что я должен перенаправить (301) их на новый свободный от подкаталогов адрес, который (в другой раз) будет молча перенаправлен с помощью htaccess, который я опубликовал.Но я не знаю, как это сделать!

Заранее спасибо!

Ответы [ 3 ]

0 голосов
/ 28 января 2011

Вы должны добавить это в свой htaccess.

RewriteRule ^subdir/(.*)$ /$1 [R=301,NC,L]
0 голосов
/ 14 декабря 2012

Это невозможно, поскольку старые ссылки, если они не физические, но хранятся в базе данных, поэтому перенаправление их было бы невозможно без повторного прохождения через базу данных.

0 голосов
/ 27 января 2011

Можете ли вы попробовать установить параметр $ live_site в файле configuration.php?Вам нужно редактировать это напрямую, а не через бэкэнд Joomla.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...