0

好的,我有这个 mod 重写(经过大量挖掘后获得:http ://www.dynamicdrive.com/forums/showthread.php?51923-Pretty-URLs-with-basic-mod_rewrite-and-powerful-options-in-PHP ):

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/loader.php$
RewriteCond %{REQUEST_URI} !^/loader.php/
RewriteRule ^(.*)$ loader.php/$1?%{QUERY_STRING} [L] 

它将所有流量重定向到我服务器公共 webroot 中的 loader.php。然后加载器相应地加载适当的 php 文件,非常标准的东西。

<?php
//load the definitions and functions
require_once '../www_private/functions/functions.php';

//If the user is looking for the index then the request will have been to a directory, add index.php accordingly
if ( is_dir(WEBROOT.$_SERVER['REQUEST_URI']) )
    {
        //check for a leading slash
        if ( substr($_SERVER['REQUEST_URI'], -1 == '/') )
            {
                $_SERVER['REQUEST_URI'] .= '/';
            }

        $_SERVER['REQUEST_URI'] .= 'index.php';
    }

//Now attempt to load the requested file.
require WEBROOT.$_SERVER['REQUEST_URI'];
?>

唯一的问题是它还会重定向 css js 和图像文件以及导致一堆致命错误......

有谁知道如何更改 mod 重写以允许非 php 文件跳过此重定向?

或者//

我会更好地在图像、css 和 js 目录中添加另一个 .htaccess 文件以忽略父级 .htaccess 吗?

4

2 回答 2

1

尝试仅包含 .php 文件,如下所示:

RewriteEngine On
RewriteBase /

$ Add this line
RewriteCond %{REQUEST_URI} /\w+\.php

# Prevent loop
RewriteCond %{REQUEST_URI} !/loader\.php

RewriteRule ^(.*)$ loader.php/$1?%{QUERY_STRING} [L]
于 2012-12-22T06:51:33.050 回答
0

通过向主 .htacecss 添加新规则

RewriteCond %{REQUEST_URI} !.(gif|jpg|png|css|html|js)$

这只是添加了一个必须匹配的条件:如果文件扩展名不是这些中的任何一个......因为图像将失败,重写规则将不会应用于它。

于 2012-12-21T19:30:52.667 回答