2013-02-05 2 views
2

Спецификации:URL дубликата вопрос в SEO-MOZ отчет

  1. Язык: PHP
  2. DB: MYSQL
  3. Тип сайта: Динамический
  4. .htaccess использование: High
  5. модули Apache включен: mod_rewrite и mod_spelling

REWRITE КОД:

RewriteRule ^(.+)-(.+)~(.+)\.html$ gallery-model.php?gallnm=$1&newnm=$2&modelid=$3 

Есть 2 проблемы, которые надо решить,

1. URL-дублируют выпуск 2. Строка запроса добавьте в URL

ВОПРОС 1: URL, дублируют выпуск

Согласно отчету SEO-MOZ, существуют два разных URL-адреса с одинаковым контентом. Например,

Структуры URL: http://www.example.co.uk/galleryname-modelname~modelid.html

URL 1: http://www.example.co.uk/Shoes-Blackmamba~23.html

URL 2: http://www.example.co.uk/shoes-blackmamba~23.html

Пожалуйста, обратите внимание, что URL-1 имеет верблюжьей обсаженной текст и URL 2 с нижним обсаженным текстом.

Файл gallery-model.php делает 100-ые записи, хранящиеся в базе данных MYSQL, чтобы он отображался в вышеупомянутых URL-адресах №1 и №2.

ПРИМЕЧАНИЕ (S):

  1. Переменные, которые являются разумными для разбора строки запроса все используют 'strtolower'. Двойное подтверждение и подтверждение.
  2. Если вы проверите вышеуказанное REWRITE CODE, вы можете увидеть [nc] на последнем. Если я пытаюсь манипулировать, он возвращается с ошибкой внутреннего сервера 500.

КАК ОСТАНОВИТЬ ЭТО ДУБЛИРОВАНИЕ URL-адресов с таким же содержанием, но разными URL-адресами?

ВОПРОС 2: Строка запроса добавить в URL

Пожалуйста, проверьте код перепишем он делает функцию перезаписи URL-адреса в SEF. Некоторые URL-адреса работают нормально, но остальные добавляют строку запроса.Для exmaple,

http://www.example.co.uk/shoes-blackmamba~23.html?gallnm=Shoes&newnm=Blackmamba&modelid=23

ПРИМЕЧАНИЯ (S):

  1. Если вы проверяете выше URL можно найти верблюжий в строке запроса.

  2. ПРИМЕНЯЕМЫЙ КОД применяется, поэтому он не должен добавлять имена переменных и текущие значения после URL-адреса? но это так.

  3. обложка() используется и не применяется замена случая mysql.

КАК ЭЛЛИМИРОВАТЬ ЭТУ СТРАНИЦУ QUERY?

Пробовал РЕШЕНИЕ вопросов # 1 и # 2: включено

  1. mod_spelling.c, но он вернулся в 500 внутренней ошибке сервера.
  2. Принудительный URL-адрес для нижнего регистра после нескольких поисковых запросов не работает.

Я с нетерпением жду вашего ответа.

ответ

1

Шаги: 1. Получите текущий URL. 2. Preg_match для "?" 3. Взорваться с помощью?? 4. Перенаправление на взорванный массив [0].

код, как показано ниже:

//Force all lower case - begins 

//Step 1 : To get current URL 
function curPageURL() { 
$pageURL = 'http'; 
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} 
$pageURL .= "://"; 
if ($_SERVER["SERVER_PORT"] != "80") { 
    $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
} else { 
    $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
} 
return $pageURL; 
} 

//Step : 2 
if (preg_match('/?/',$camel)) { 
     $expurl = (explode("?",$camel)); //Step 3 : Explode with "?" 
     header("Location: $expurl[0]"); //Step 4 : Redirect to exploded array[0]. 
    } 
Смежные вопросы