2014-02-01 3 views
-2

Я хочу сделать чистый URL для моего сайта. Как изменить файл htaccess. Мой оригинальный Звено,Как сделать чистый URL?

Это моя оригинальная ссылка

**http://www.tangailbazar.com/adview_details.php?ID=9014&show=Hot%20and%20Cool%20Water%20Filter** 

Я хочу, чтобы это сделать, как этот

http://www.tangailbazar.com/Hot-and-Cool-Water-Filter 

Мой код находится здесь.

RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule /^(.*) adview_details.php?show=$1 [PT,QSA] 

Мой пост ссылку, откуда я получаю значение как этот

<a href="view-items-details.php?ID=<?php echo $row['sl'];?>&show=<?php echo $row['title'];?>">View Details</a> 

В adview_details странице я написал код

<?php 


    $id=$_GET['ID']; 
    $id1=$_GET['show']; 

    ?> 
    <?php 
    $SQL="select * from tb_classified where sl='$id' and title='$id1'"; 
    $obj->sql($SQL); 

    while($row = mysql_fetch_array($obj->result)) 

    { 

    echo $row['title']; 
     echo $row['description']; 
    } 
    ?> 
+0

Вам придется либо вставлять 9014 в URL или карту горячей и Cool-Water-Filter вернуться к нему, если это важное число. – user2864740

+0

Использование переполнения стека захода на посадку включает в себя идентификатор и заголовок вопроса, но только поиск по его идентификатору (название становится полезным при создании чистого URL-адреса, хотя технически это необязательно) –

+0

Ваш скрипт уязвим для SQL-инъекций; вы должны прочитать [как их предотвратить] (http://stackoverflow.com/q/60174/53114). – Gumbo

ответ

0

Вы ищете Apache мод называется mod_rewrite. В частности (из документации):

Если, с другой стороны, вы хотите, чтобы передать запрашиваемый URI в качестве аргумента строки запроса в index.php, вы можете заменить этот RewriteRule с:

RewriteRule (.*) adview_details.php?show=$1 [PT,QSA] 

Обратите внимание, что эти набор правил можно использовать в файле .htaccess, а также в блоке.

0

Первое, что привлекает мое внимание, заключается в том, что ваш обычный URL-адрес не так чист, чтобы начать с него. Я бы посоветовал вам удалить пробелы и изменить их для дефисов - если это возможно. URL-адрес также не чувствителен к регистру, поэтому для символов верхнего регистра фактически не используется, но использование их является личным предпочтением, хотя оно делает их менее читаемыми, а при переписывании это дополнительный процесс для их изменения.

При переписывании URL-адреса вы должны подумать о своем URL-адресе. Существует домен, который разделен на: субдомен (www), доменное имя (tangailbazar) и домен верхнего уровня (com). После того, как домен начнет очистку (вы также можете сделать много перезаписи в домене, но в вашем случае вы не будете).

Чтобы сделать процесс перезаписи понятным и понятным (поскольку переписывание URL-адресов с помощью mod_rewrite может привести к массивным головным болям), вы хотите, чтобы каждая часть переписанного URL-адреса (между слэшами) переводилась в параметр в необработанном URL-адресе. Таким образом, в вашем случае: ID=9014&show=Hot and Cool Water Filter - это два параметра, которые должны использоваться в вашем чистом URL-адресе. При переписывании URL-адреса вы выбираете значение ключа (параметра) ID и show и используете их в своем чистом URL-адресе. В вашем случае вам нужен параметр ID в чистом URL-адресе, иначе вы не сможете загрузить целевой URL-адрес.

RewriteRule ^.+/(.+)/(.+)+$ adview_details.php?ID=$1&show=$2 [L] 

Это правило будет изменить запрос на:

www.tangailbazar.com/9014/Hot%20and%20Cool%20Water%20Filter 

в:

www.tangailbazar.com/adview_details.php?ID=9014&show=Hot%20and%20Cool%20Water%20Filter 

Это лучшее, что вы можете сделать в этом случае, в противном случае вам придется изменить некоторые вещи о структуре целевого URL.

Важная вещь, которую вам нужно получить, заключается в том, что переименование URL-адреса вводит в заблуждение, вы на самом деле ничего не переписываете, вы переводите запрошенный URL-адрес из браузера в URL-адрес, где находится страница. Таким образом, это скорее «URL-перевод», чем «переписывание URL». При создании удобного URL-адреса вы большую часть времени удаляете ключи параметров (show =) и расширение файла (.php) из URL-адреса, чтобы сделать их более читаемыми.

Вам всегда нужно использовать динамические компоненты в своем URL-адресе, и вы можете очистить статические части.

Я надеюсь, что это поможет вам решить вашу проблему или, по крайней мере, сделать некоторые вещи понятными при переписывании URL-адресов.

Удачи вам!

0
<?php 
$title = str_replace(' ', '-', $row['title']) 
?> 
<a href="<?php echo "/".$title ;?>">View Details</a> 

Выход URL http://www.tangailbazar.com/Hot-and-Cool-Water-Filter , но это не будет работать, то почему? потому что вы не можете создать url с условием, тогда как для запроса mysql нужны два условия. Возможно, вам стоит изменить ваш адрес на http://www.tangailbazar.com/1/Hot-and-Cool-Water-Filter Если вы следуете моему совету, вы должны изменить его. Htaccess становится

RewriteRule ([0-9]?)/([a-zA-Z_-]+) adview_details.php?ID=$1&show=$2 [PT,QSA] 

и URL, который вы должны использовать

<a href="<?php echo "/".$row['sl']."/".$title ;?>">View Details</a> 
+0

Я использовал его, но не показываю сообщение – user3259990

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