整个域的 .htaccess 文件

.htaccess file for whole domain

我的项目中有这个结构:

domain.com

    -index.php

    frontend

        .htaccess

        -index.php
        -view1.php
        -view2.php

        account

            -index.php
            -view1.php
            -view2.php

    backend

        -class1.php
        -class2.php

域名.com/index.php:

include ( 'frontend/index.php' );

域名.com/frontend/index.php:

$str = $_GET['values'];
$str = str_replace ( '../' , '' , $str );

$file = $str . '.php';

if ( file_exists ( $file ) )
{
    include ( $file );
}

域.com/frontend/.htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?values= [L]
</IfModule>

那么应该调用哪些 url 来获取特定的模板(.php-文件)?

您好!

我不认为你真的想要这个:) 尝试类似的东西

 RewriteEngine On
 RewriteBase /

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ /index.php?values= [L]

现在你有 $_GET[ 'values' ] = 'account/view1' 你可以用 PHP.

来处理它

将你的 htaccess 放在你的 htdocs 根目录下,在你的例子中就是你的 'frontend' 文件夹。 你的新 index.php 可以是这样的

 <?php

      $str = $_GET[ 'values' ];
      $str = str_replace( '../', '', $str );

      $vars = explode( '/', $str );
      $path = '';
      foreach( $vars as $var ) {
           $p = strpos( $var, ':' );
           if( $p == 0  ) {
                $path .= $var . '/';
                continue;
           }
           $_GET[ sub_str( $var, 0, $p ) ] = sub_str( $var, $p + 1 );
      }

      if( $path ) {

           // File
           $file = $path . '.php';
           if( file_exists( $file ) ) {
                include( $file );
                exit;
           }

           // Direction
           $file = $path . '/index.php';
           if( file_exists( $file ) ) {
                include( $file );
                exit;
           }

           // Page not found // comment out if you dont want the default page
           // include( '404.php' );

      }

      // Default Page
      include( 'home.php' );

使用此解决方案,您始终与 php 位于同一目录中,并且可以根据需要解释 URL。您可以在您的 URL 或任何您想要的内容中包含 ID,并且您可以将所有标准包含在此文件中。

更新

  • 默认页面和目录支持
  • 价值支持。示例:

    http://domain.com/account/view/member_id:14
    
    = Result
    File: account/view/index.php
    $_GET[ 'member_id' ]: 14
    

未经测试。玩得开心:)