如何使用SEO友好的apache URL更改php URL?
因此,我从数据库中提取事件,例如如何使用SEO友好的apache URL更改php URL?,php,apache,mod-rewrite,Php,Apache,Mod Rewrite,因此,我从数据库中提取事件,例如/event detail.php?id=1,但我希望它看起来像/event Name/。我如何做到这一点?我对mod Apache rewrite略知一二,但不足以知道它在这里是否有效。还是我的做法不对?我是否需要拉取具有名称的项目/event detail.php?name=事件名称?我真的不想这样做,尽管看起来会容易得多。否则很难让它工作(我想) 尝试以下操作(将其写入服务器conf或.htaccess): 重新启动发动机 重写cond%{SCRIPT_F
/event detail.php?id=1
,但我希望它看起来像/event Name/。我如何做到这一点?我对mod Apache rewrite略知一二,但不足以知道它在这里是否有效。还是我的做法不对?我是否需要拉取具有名称的项目<代码>/event detail.php?name=事件名称?我真的不想这样做,尽管看起来会容易得多。否则很难让它工作(我想)
尝试以下操作(将其写入服务器conf或.htaccess):
重新启动发动机
重写cond%{SCRIPT_FILENAME}-D
重写cond%{SCRIPT_FILENAME}-F
重写规则^(.*)$event detail.php?name=$1[QSA,L]
这将重写URL,并将现有文件和目录以外的所有内容转发到event detail.php
script
更多信息,如果用户调用的
/myShowEvent1
将被重写为事件详细信息.php?name=myShowEvent1
,或者如果用户调用的/event/25366273
,则与调用事件详细信息.php?name=event/25366273
相同(也就是说,如果它们在服务器中不存在).但请记住,页面上的所有链接都必须是绝对的,而不是相对的
试一下你自己,你就会知道我在说什么。你的mod_重写问题是什么?您尝试过什么?我的问题是是否可以将/event detail.php?id=1转换为/event Name/?我假设没有,因为apache永远不知道id 1的名称是什么,只是确认一下。我想我对这些事情通常是怎么做的很感兴趣。很难想象如何用文字来搜索它。Apache不关心,或者需要知道事件的名称。由PHP中的脚本来处理输入。Apache可以配置为将假目录作为参数传递。请看下面你文章的答案。很好,这是一个很好的起点。我现在明白多了。谢谢
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ event-detail.php?name=$1 [QSA,L]
</IfModule>