我正在为一个不想使用 Drupal,但希望在他们的网站上使用 Drupal 风格的 mod 重写(友好 url)功能的客户创建一个网站。
以前从未创建过我自己的 mod_rewrite 引擎,您可以给我任何方便的提示或技巧吗?CMS 完全由我创建,如果您能提供此功能,那就太好了,所以如果您能提供帮助,请提前致谢。
我正在为一个不想使用 Drupal,但希望在他们的网站上使用 Drupal 风格的 mod 重写(友好 url)功能的客户创建一个网站。
以前从未创建过我自己的 mod_rewrite 引擎,您可以给我任何方便的提示或技巧吗?CMS 完全由我创建,如果您能提供此功能,那就太好了,所以如果您能提供帮助,请提前致谢。
将其添加到您的 htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/?argv=$1 [L]
并且 index.php/?argv=mypage 将变为 /mypage 然后还有一个 php 片段将 URI 放入一个数组
if($_GET['argv']){
$argc = count($argv);
$myURI = explode('/',$_GET['argv']);
$controller = ($argc < 0) ?: $myURI[0];
$action = (argc > 1) ? $myURI[1] : 'index';
$params = (argc < 2) ?: array_slice($myURI, 2);
}
这就是我在我的mvc上使用的。
mod_rewrite 重写规则生成器将获取给它的动态 url,并生成正确的语法以放置在 .htaccess 文件中,以允许以可抓取的格式重写 url。apache 模块“mod_rewrite”(您需要启用该模块)将某种格式的 url 转换为另一种格式,这对于帮助对具有动态内容的站点进行索引非常有用。
Syntax: RewriteRule url-pattern url-new [[flag,...]]
Example: RewriteRule ^/foo/(.*)$ /bar/$1 [R,L]