Не могу сделать 301 перенаправление в файле .htaccess для ASP - PullRequest
0 голосов
/ 10 июля 2011

У меня есть сайт WordPress, когда на том же домене был старый сайт ASPX. Это мой файл .htaccess для перенаправления:

# BEGIN WordPress 
RewriteEngine On 
RewriteBase / 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
redirect 301 /news/ http://www.doctornestor.co.il/category-news/%D7%9B%D7%9C%D7%9C%D7%99/
redirect 301 /articles/ http://www.doctornestor.co.il/blog/articles-and-newsposts/
redirect 301 /contact.aspx http://doctrnestor.co.il/contact/
redirect 301 /send2friend.aspx http://www.doctornestor.co.il/contact/

Так в чем же проблема? Когда я перехожу к «http://www.doctornestor.co.il/news", он отправляет меня на правильное перенаправление URL - http://www.doctornestor.co.il/category-news/%D7%9B%D7%9C%D7%9C%D7%99/, но когда я перехожу к« http://www.doctornestor.co.il/contact.aspx", я получаю эту ошибку »Ошибка сервера в '/ «Приложение».

Я предполагаю, что это потому, что мне нужно сделать что-то еще для перенаправления ASPX. Чего мне не хватает?

P.S. Я работаю над Apache.

Ответы [ 3 ]

0 голосов
/ 10 июля 2011

Попробуйте эти правила:

RewriteEngine On 
RewriteBase / 

# redirects
RewriteRule ^news/$ http://www.doctornestor.co.il/category-news/%D7%9B%D7%9C%D7%9C%D7%99/ [QSA,R=301,L]
RewriteRule ^articles/$ http://www.doctornestor.co.il/blog/articles-and-newsposts/ [QSA,R=301,L]
RewriteRule ^contact.aspx$ http://doctornestor.co.il/contact/ [QSA,R=301,L]
RewriteRule ^send2friend.aspx$ http://www.doctornestor.co.il/contact/ [QSA,R=301,L]

# WordPress rules
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L]

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: первые 2 перенаправления точно совпадают с директивами Redirect. Это означает, что 1 правило будет соответствовать ТОЛЬКО http://www.domain.com/news/, тогда как оригинальное перенаправление также будет соответствовать http://www.domain.com/news/something => http://www.doctornestor.co.il/category-news/%D7%9B%D7%9C%D7%9C%D7%99/something.

Если вы хотите, чтобы это поведение заменило эти 2 строки на эти:

RewriteRule ^news/(.*)$ http://www.doctornestor.co.il/category-news/%D7%9B%D7%9C%D7%9C%D7%99/$1 [QSA,R=301,L]
RewriteRule ^articles/(.*)$ http://www.doctornestor.co.il/blog/articles-and-newsposts/$1 [QSA,R=301,L]
0 голосов
/ 11 июля 2011

хорошо, проблема связана с моим хостом (rackspace) - здесь .

@ Adrian, @LazyOne & @James - спасибо за вашу помощь.

0 голосов
/ 10 июля 2011

Это просто опечатка в вашем вопросе или копия вашего кода в .htaccess?

redirect 301 /contact.aspx http://doctrnestor.co.il/contact/

Я предполагаю, что это должно читаться doctornestor

redirect 301 /contact.aspx http://doctornestor.co.il/contact/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...