Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用SEO友好的apache URL更改php URL?_Php_Apache_Mod Rewrite - Fatal编程技术网

如何使用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>