В дополнение к моим предыдущим вопросам я попадаю в беспорядок, поэтому я постараюсь изложить свои проблемы как можно лучше здесь.
Я приводю в порядок свою структуру URL, но имеюпроблема в том, что мои URL-адреса хорошо индексируются в поисковых системах, поэтому мне нужно переписать мои URL-адреса, а также перенаправить их.
С помощью более раннего ответа на предыдущий вопрос у меня есть следующее в моем .htaccess
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^mydomain.com [nc]
rewriterule ^(.*)$ http://www.mydomain.com/$1 [r=301,nc]
# Rewrite all index.php to root: / ( with perm redirect )
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.mydomain.com/$1 [R=301]
# Rewrite A newly added section rewrite ( no redirect required )
RewriteRule ^products/digital_imaging/([^/]*)/([^/]*)$ /products/digital_xray.php?id=$1&product=$2 [L]
# Rewrite dental news article to neat nice url
RewriteRule ^dental_news/([^/]*)/([^/]*)$ news/dentistry_dental/article_detail.php?article=$1&title=$2&redirect [L]
#Conditional rewrite of old news article path to new one with 301 redirect
RewriteCond %{REQUEST_URI} !^/dental_news/
RewriteCond %{QUERY_STRING} article=([0-9]*)&title=([^&]*)$
RewriteRule (.*) /dental_news/%1/%2? [L,R=301]
Итак, все это работает, как и ожидалось, но у меня есть другой URL, который заканчивается index.php, который иногда, но не всегда имеет переменные php, это мне также нужно переписать и перенаправить, пытаясь сделать это самостоятельноЯ создаю конфликт некоторых типов, и он не работает должным образом.
URL, который мне нужно переписать и перенаправить с 301, ниже
http://www.mydomain.com/news/dentistry_dental/index.php?month=February&year=2011
With the previous index.php rule it currently displays as
http://www.mydomain.com/news/dentistry_dental/?month=February&year=2011
Half way there i guess... I need it to be the following
http://www.mydomain.com/dental_news/February/2011
Имея в виду, что URLиногда не имеет переменных, как показано ниже
http://www.mydomain.com/news/dentistry_dental/index.php
Which is currently with the index.php rule above is showing as
http://www.mydomain.com/news/dentistry_dental/
This needs to be
http://www.mydomain.com/dental_news/
Так что да, я совершенно дурак в этом, это совершенно ново для меня, так что, если я смогу разобраться в этом, я буду действительно счастливым кроликом!
Спасибо всем
РЕДАКТИРОВАТЬ
Хорошо, мой текущий .htaccess выглядит так, как показано ниже.
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^mydomain.com [nc]
rewriterule ^(.*)$ http://www.mydomain.com/$1 [r=301,nc]
# Rewrite all index.php to root: / ( with perm redirect )
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.mydomain.com/$1 [R=301]
RewriteRule ^products/digital_imaging/([^/]*)/([^/]*)$ /products/digital_xray.php?id=$1&product=$2 [L]
# Rewrite dental news article to neat nice url
RewriteRule ^dental_news/([^/]*)/([^/]*)$ news/dentistry_dental/article_detail.php?article=$1&title=$2&redirect [L]
#Conditional rewrite of old news article path to new one with 301 redirect
RewriteCond %{REQUEST_URI} !^/dental_news/
RewriteCond %{QUERY_STRING} article=([0-9]*)&title=([^&]*)$
RewriteRule (.*) /dental_news/%1/%2? [L,R=301]
RewriteCond %{QUERY_STRING} month=([^&]*)&year=([^&]*)
RewriteRule (.*) /dental_news/%1/%2? [R=301]
RewriteRule news/dentistry_dental/$ /dental_news/ [R=301]
RewriteRule ^dental_news/$ /news/dentistry_dental/index.php [L]
Как оно стоит с этим,Происходит следующее
www.mydomain.com/news/dentistry_dental/index.php
-> www.mydomain.com/dental_news/
(^ Correct)
www.mydomain.com/news/dentistry_dental/index.php?month=May&year=2011
-> www.mydomain.com/dental_news/April/2011
(^ Неправильно: показывает правильный путь в строке URL, но отображает article_detail.php вместо index.php с переменными)
Я предполагаю, что 2 правила похожи, а одно - это выбор index.php с переменными года и месяца и отправка на страницу article_detail.Однако я могу ошибаться, и я не знаю, как исправить.
РЕДАКТИРОВАТЬ # 2
Текущий .htaccess, как показано ниже.
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^dentalsupportuk.com [nc]
rewriterule ^(.*)$ http://www.dentalsupportuk.com/$1 [r=301,nc]
# Rewrite all index.php to root: / ( with perm redirect )
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.dentalsupportuk.com/$1 [R=301]
RewriteRule ^products/digital_imaging/([^/]*)/([^/]*)$ /products/digital_xray.php?id=$1&product=$2 [L]
# Rewrite dental news article to neat nice url
RewriteRule ^dental_news/([0-9]*)/([^/]*)$ news/dentistry_dental/article_detail.php?article=$1&title=$2&redirect [L]
#Conditional rewrite of old news article path to new one with 301 redirect
RewriteCond %{REQUEST_URI} !^/dental_news/
RewriteCond %{QUERY_STRING} article=([0-9]*)&title=([^&]*)$
RewriteRule (.*) /dental_news/%1/%2? [L,R=301]
RewriteCond %{QUERY_STRING} month=([^&]*)&year=([^&]*)
RewriteRule (.*) /dental_news/%1/%2? [R=301]
RewriteRule news/dentistry_dental/$ /dental_news/ [R=301]
RewriteRule ^dental_news/([a-zA-Z]*)/([0-9]*)$ news/dentistry_dental/index.php?month=$1&year=$2&redirect [L]
www.mydomain.com/dental_news/ теперь переписывает на www.mydomain.com/dental_news/, которого нет, поэтому ошибка 404 (следует переписать на www.mydomain.com/news/dentistry_dental/)
www.mydomain.com / dental_news / 100 / some-title теперь переписывает , как ожидается, www.mydomain.com/news/dentistry_dental/article_detail.php с переменными (работает)
www.mydomain.com / news / dentistry_dental / article_detail.php? Article = 100 & title = some-title is перенаправляет , как ожидается, на www.mydomain.com/dental_news/100/some-title иотображается правильно (работает)
www.mydomain.com / news / dentistry_dental / index.php? month = май & год = 2010 - это перенаправление , но при этом вылетает сообщение Firefox (Firefox обнаружил, что серверперенаправляет запрос на этот адрес таким образом, что никогда не будетmplete.) (Не работает, это какой-то цикл вызывает это?)
www.mydomain.com / dental_news / Июль / 2010 / переписывание дает мне ошибку 404.
Так что да, я повсюду, может быть, я поставил неправильный порядок или что-то в этом роде, но чем больше я запутываюсь, тем больше я боюсь все сломать.Есть идеи?
С уважением, M