我的项目中有这个结构:
domain.com
-index.php
frontend
.htaccess
-index.php
-view1.php
-view2.php
account
-index.php
-view1.php
-view2.php
backend
-class1.php
-class2.php
domain.com/index.php:
include ( 'frontend/index.php' );
domain.com/frontend/index.php:
$str = $_GET['values'];
$str = str_replace ( '../' , '' , $str );
$file = $str . '.php';
if ( file_exists ( $file ) )
{
include ( $file );
}
domain.com/frontend/.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?values=$1 [L]
</IfModule>
那么应该调用哪些url来获取特定模板(.php-files)?
问候!
答案 0 :(得分:0)
我不认为,你真的想要这个:) 尝试类似的东西
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?values=$1 [L]
现在你有$ _GET [&#39;价值观&#39; ] =&#39; account / view1&#39; 你可以用PHP处理它。
将你的htaccess放在你的htdocs root中,在你的情况下你的前端是&#39;夹。 你的新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或任何您想要的ID,并且您可以在此文件中包含所有标准包含。
价值支持。例如:
http://domain.com/account/view/member_id:14
= Result
File: account/view/index.php
$_GET[ 'member_id' ]: 14
未经测试。玩得开心:))