2016-11-18 5 views
0

У меня есть мой сайт, и всякий раз, когда я добавляю в него новую страницу, он создает URL-адрес со случайным номером id, который я не хочу. Я хотел бы использовать имя page/product как мой URL, так, что в данный момент я имею:Запишите заголовок страницы в URL вместо ID страницы

ток: http://www.abcdex.in/deal/d29e96cfd623a83f37f1bc12b4465131

Желаемые: http://www.abcdex.in/deal/Product-Name

Я прошел с моим .htaccess файлом, и он показывает в нижний следующий код:

RewriteEngine On 
Options -Indexes 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 
RewriteCond $1 !^(index\.php|assets|forum|robots\.txt|canvas\.xml) 
RewriteRule ^(.*)$ index.php?/$1 [L] 

Может кто-нибудь помочь мне, потому что это создает много беспорядка, и я теряю мой сайт ранг из-за этого?

Спасибо заранее!

+0

Это называется «Человеческий читаемый URL», и лучше решить эту проблему на уровне вашей системы управления контентом - системе, управляющей вашим сайтом. Проверьте там вариант «Человеческий читаемый URL» – SergeyLebedev

+0

изменяет ли URL-адрес при отправке формы? возможно, когда вы нажимаете на продукт? – GraveyardQueen

+0

@kapil sharma Я вставлял экзаменатора из этого урока и применяю там, если любые сомнения не стесняются спрашивать. –

ответ

0

узнать из этого примера и применять в вашем .htaccess Пример

AddDefaultCharset utf-8 
Options +FollowSymlinks -Indexes 
RewriteEngine on 
RewriteBase /living/ 
# skip all files and directories from rewrite rules below 
#RewriteCond %{REQUEST_FILENAME} -d [OR] 
#RewriteCond %{REQUEST_FILENAME} -f 
#RewriteRule^- [L] 
#RewriteRule ^authors/([^/]*)\.html$ main.php?authchar=$1 [QSA,L] 

ваш .htaccess будет что-то вроде этого ваши имена файлов

AddDefaultCharset utf-8 
    Options +FollowSymlinks -Indexes 
    RewriteEngine on 
    RewriteBase/
# skip all files and directories from rewrite rules below 
#RewriteCond %{REQUEST_FILENAME} -d [OR] 
#RewriteCond %{REQUEST_FILENAME} -f 
#RewriteRule^- [L] 
#RewriteRule ^deal/([^/]*)\.html$ yourscript.php?d29e96cfd623a83f37f1bc12b4465131=$1 [QSA,L] 
0

Вы можете попробовать сделать все это в HTAccess, но мне нравится решать эти проблемы в PHP

На всех ваших страницах с URL-адресами, похожими на

http://www.abcdex.in/deal/d29e96cfd623a83f37f1bc12b4465131 

Преобразование название продукта в переменную, например $ ProductName

Затем перенаправлять:

<?php 
header("Location: http://www.abcdex.in/deal/'.$ProductName.'"); 
?> 

Это лучше, если вы измените заголовок в 301 переехал на постоянное жительство, но вы будете только иметь возможность изменять заголовок, если имя продукта передается в переменную $ ProductName до того, как будут загружены какие-либо части страницы.

header("HTTP/1.1 301 Moved Permanently"); 

Если вы не можете изменить заголовок, то есть способы перенаправления в PHP без использования заголовка. Я считаю, что следующий код работает:

$URL="http://www.abcdex.in/deal/'.$ProductName.'"; 
echo '<META HTTP-EQUIV="refresh" content="0;URL=' . $URL . '">'; 
echo "<script type='text/javascript'>document.location.href='{$URL}';  </script>"; 

 Смежные вопросы

  • Нет связанных вопросов^_^