Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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
Php 请帮助我进行URL路由_Php_Mod Rewrite - Fatal编程技术网

Php 请帮助我进行URL路由

Php 请帮助我进行URL路由,php,mod-rewrite,Php,Mod Rewrite,我是这个路由和mod rekrite等东西的完全初学者。 我在这里遵循了一个关于URL路由的教程:,但无法让它工作 我只想路由所有和任何类型的URL,例如 http://wettone.com/weblog/2000/01/01/example http://wettone.com/weblog/2000/01/01 http://wettone.com/weblog/2000/01 http://wettone.com/weblog/2000 指向文档根目录中weblog文件夹中的my in

我是这个路由和mod rekrite等东西的完全初学者。 我在这里遵循了一个关于URL路由的教程:,但无法让它工作

我只想路由所有和任何类型的URL,例如

http://wettone.com/weblog/2000/01/01/example
http://wettone.com/weblog/2000/01/01
http://wettone.com/weblog/2000/01
http://wettone.com/weblog/2000
指向文档根目录中weblog文件夹中的my index.php脚本,目录路径如下:

http://wettone.com/weblog/index.php?y=2000&m=01&d=01&n=example
http://wettone.com/weblog/index.php?y=2000&m=01&d=01
http://wettone.com/weblog/index.php?y=2000&m=01
http://wettone.com/weblog/index.php?y=2000
我怎样才能做到这一点。 顺便说一句,我更喜欢保持简单,不使用任何框架

Thanx提前

编辑:我可以知道为什么投反对票吗?我做错了什么?我不能在这里问这类问题吗?

使用htaccess

Options +FollowSymLinks
RewriteEngine On
RewriteBase /weblog/


RewriteRule (.*)/(.*)/(.*)/(.*)$ index.php?y=$1&m=$2&d=$3&n=$4

那么基本上您希望所有内容都映射到index.php? 如果是,下面是取自symfony1 htaccess的代码片段

# we check if the .html version is here (caching)
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f

# no, so we redirect to our front web controller
RewriteRule ^(.*)$ index.php [QSA,L]
在php中,如果我没记错的话,您必须使用$_SERVER['REQUEST_URI'],来解析URI并决定显示什么


最好的方法是只使用symfony2组件来完成此任务:

Thnx…我尝试过,但它给了我内部服务器错误。怎么了?顺便说一句,我已经把这个htaccess放在我的文档根目录中,index.php在weblog文件夹中。是否正确?是否打开了mod_rewrite,然后重新启动apache?好的,mod_rewrite已被注释,但我取消了注释并重新启动了apache。让我再多说几句,因为它起作用了。给定内部服务器错误。我的index.php位于weblog文件夹中,我已将htaccess放在文档根目录中。是否正确?@NitinBansal:已编辑代码,请立即检查。htaccess应与index.php位于同一目录中,否?我认为重写基应该设置为webroot如果托管在example.com,/foo/如果托管在example.com/foo,等等。没有人能猜到为什么会出现内部服务器错误。Web服务器日志会告诉我们。这也是超级简单,请阅读更多的教程;考虑写一个没有意义的标题来寻找一些。这个星期我偶然发现了一个超小的框架。基本上只给你你想要的,没有更多:路由/干净的URL:ToroPHP正是我想要的。非常感谢你:-