我有一个网址: 的 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 时,它会给我找不到对象错误。
有人可以告诉我代码有什么问题吗?
答案 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。 和^为真正的链接