使用mod-rewrite将路由传递给index.php

时间:2013-06-10 10:18:13

标签: php mod-rewrite

我是mod_rewrite的新手,所以我需要你们的帮助。

我的文件夹结构是:

assets/fonts/       Contains all fonts
assets/images/      Contains all images
assets/scripts/     Contains all JavaScript files
assets/styles/      Contains all CSS files
pages/              Contains parts of the page as PHP file or directory containing PHP files
header.php          Header of site
footer.php          Footer of site
index.php           index of site, now always loads pages/home.php.

pages目录包含home.php,about.php等页面的所有正文部分。它还包含'portfolio'等目录,而这些目录又包含更多的.php文件。

这就是我希望我的网址重写的方式。

http://domain.com/about         => http://domain.com/index.php?route=about
http://domain.com/about/kittens => http://domain.com/index.php?route=about/kittens

但是,这应该直接将请求排除在assestspages文件夹之外。 页面文件夹应该排除在http://domain.com/pages/about等直接请求上的原因是因为站点的某些部分加载了AJAX。 最好是排除根目录中的任何目录。

你能帮助我吗?

1 个答案:

答案 0 :(得分:2)

您可以按照以下方式使用方法:

RewriteEngine on
RewriteCond $1 !^(index\.php|assets|pages|robots\.txt)
RewriteRule ^(.*)$ /index.php?route=$1 [L]

将其保存为根文件夹中的.htaccess