我想为我的网站制作干净的网址。如何更改htaccess文件。我原来的链接
这是我原来的链接
**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 :(得分:0)
您正在寻找名为mod_rewrite的Apache mod。具体而言(来自文档):
另一方面,如果您希望将请求的URI作为查询字符串参数传递给index.php,则可以将该RewriteRule替换为:
RewriteRule (.*) adview_details.php?show=$1 [PT,QSA]
请注意,这些规则集可以在.htaccess文件中使用,也可以在块中使用。
答案 1 :(得分:0)
首先引起我注意的是你的常规网址不是那么干净。我建议你删除空格并更改连字符 - 如果可能的话。 URL也不区分大小写,因此实际上没有使用大写字符,但使用它们是个人偏好,虽然它使它们更不易读,并且当重写它时是一个额外的过程来更改它们。
重写网址时,您应该将您的网址视为部分。域名分为:子域名(www),域名(tangailbazar)和顶级域名(com)。域名开始清理后(您也可以在域名上进行大量重写,但在您的情况下,您不会这样做。)
为了使重写过程清晰简单(因为使用mod_rewrite重写URL会让人头疼),您希望重写的URL(斜杠之间)的每个部分都转换为原始URL中的参数。因此,在您的情况下:ID=9014&show=Hot and Cool Water Filter
是应该在您的干净URL中使用的两个参数。重写URL时,您将选择key(参数)ID
和show
的值,并在干净的URL中使用它们。在您的情况下,您需要干净URL中的ID参数,否则您永远不能加载目标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中的动态部分,并且可以清理静态部分。
我希望这可以帮助您解决问题,或者至少在重写网址时做一些事情。
祝你好运!答案 2 :(得分:0)
<?php
$title = str_replace(' ', '-', $row['title'])
?>
<a href="<?php echo "/".$title ;?>">View Details</a>
输出网址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]
以及您应该使用的网址
<a href="<?php echo "/".$row['sl']."/".$title ;?>">View Details</a>