使用.htaccess重写URL

时间:2014-05-13 08:24:26

标签: .htaccess url rewrite

我有一个网址: 的 domain.com/abc/hotel_detail.php?id=2

我想重写网址,使它看起来像这样: 的 domain.com/abc/hotel_detail/2

我目前的.htaccess看起来像这样:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

RewriteCond   %{QUERY_STRING} ^id=20$                   
RewriteRule   ^abc/hotel_detail/([0-9]+)$  ^abc/hotel_detail.php?id=$1 [L]

第一部分包含从页面中删除扩展名(.php)的代码。

当我尝试打开此链接 domain.com/abc/hotel_detail/2 时,它会给我找不到对象错误。

有人可以告诉我代码有什么问题吗?

3 个答案:

答案 0 :(得分:0)

删除此行:

RewriteCond   %{QUERY_STRING} ^id=20$

答案 1 :(得分:0)

将文件更改为:

RewriteEngine On
RewriteRule   ^abc/hotel_detail/([0-9]+)$  ^abc/hotel_detail.php?id=$1 [R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,R]

应该有效。我删除了RewriteCond %{QUERY_STRING} ^id=20

你的第一个改写和规则是覆盖第二个,切换它们应该修复它。

答案 2 :(得分:0)

我认为这应该有用

 RewriteRule        ^abc/hotel_detail/([0-9]*)$ abc/hotel_detail.php?id=$1 [L]

([0-9] *)miltiply sign。 和^为真正的链接