所以我从数据库中提取事件,例如/event-detail.php?id=1
,但我希望它看起来像/事件名称/。 我如何实现这一点? 我对 mod Apache 重写有所了解,但不足以知道它是否适用于这里。 还是我的做法是错误的? 我是否需要拉取带有名称的项目? /event-detail.php?name=Event Name
? 我真的不想那样做,即使看起来会容易得多。
否则很难
让它工作(我认为)。
试试这个(写这个到服务器 conf 或 .htaccess):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ event-detail.php?name=$1 [QSA,L]
</IfModule>
这将重写 url 并将现有文件和目录以外的所有内容转发到脚本event-detail.php
。
更多信息,如果用户调用的/myShowEvent1
将被重写为event-detail.php?name=myShowEvent1
,或者如果用户调用的/event/25366273
将与调用event-detail.php?name=event/25366273
相同(即如果服务器中不存在)。
但请记住,您在页面上的所有链接都必须绝对不是相对的。
只要尝试一下自己,你就会知道我在说什么。