如何设置虚拟URL

时间:2011-10-13 17:41:43

标签: php html apache

  

可能重复:
  Routing URLs in PHP

如何设置像典型CMS框架一样的虚拟URL?有一个很好的教程或代码库吗?根据我的理解,它将所有请求重新路由到index.php,而Apache则执行某种mod_rewrite。我不是很确定。我将如何开始设置这样的框架?

3 个答案:

答案 0 :(得分:1)

你对mod_rewrite是正确的,这里有几个很好的教程,它也涉及.htaccess文件的各种其他用途

http://corz.org/serv/tricks/htaccess2.php

http://www.workingwith.me.uk/articles/scripting/mod_rewrite

答案 1 :(得分:0)

你应该在Apache中启用mod_rewrite。

您将所有请求重新路由到index.php

是正确的

完成所有操作后,您的.htaccess文件应包含以下内容:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]

这基本上告诉所有请求转到index.php

我建议查看现有的框架,比如CodeIgniter,看看他们是如何做到的,然后实现自己的框架。

答案 2 :(得分:0)

了解symfony如何做here(就mod_rewrite而言)。

并检查this answer以了解PHP部分的一些方法。