2012-10-27 67 views
1

我开始在一个网站项目,我想用动态长度重写网址。例如,下面的网址可以在该网站存在:htaccess重写网址动态长度

http://www.url.com/signup/ 

或者

http://www.url.com/profile/mark/pm/compose/ 

现在我有一个剧本的.htaccess的工作,但我怀疑它的效率。下面的代码:

Options +FollowSymLinks 
RewriteEngine On 

RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1 
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?page=$1 

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?page=$1&subone=$2 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ index.php?page=$1&subone=$2 

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php? page=$1&subone=$2&subtwo=$3 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ index.php?page=$1&subone=$2&subtwo=$3 

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?page=$1&subone=$2&subtwo=$3&subthree=$4 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ index.php?page=$1&subone=$2&subtwo=$3&subthree=$4 

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?arg[0]=$1&arg[1]=$2&arg[2]=$3&arg[3]=$4&arg[4]=$5 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ index.php?arg[0]=$1&arg[1]=$2&arg[2]=$3&arg[3]=$4&arg[4]=$5 

其实我是想这样做,但我不知道我是怎么得到它的工作...

RewriteRule ^{[a-zA-Z0-9_-]+}/$ index.php?urlvar={$#} 

所以URL

http://www.url.com/profile/mark/pm/compose/ 

会导致

http://www.url.com/index.php?urlvar[0]=profile&urlvar[1]=mark&urlvar[2]=pm&urlvar[3]=compose 

任何人谁W知道如何解决这个问题?

回答

1

我得到这个工作: 在.htaccess:

Options +FollowSymLinks 
RewriteEngine on 

RewriteRule (.*)/ index.php?path=$1 

在index.php文件:

<?php 
    print_r(explode("/", $_GET['path'])); 
?> 
+0

日Thnx,但不幸的是这是行不通的.. 当我运行通过URL http: //www.url.com/profile/mark/pm/compose/ print_r($ _GET)导致Array([path] => index.php) –

+0

您需要一个'RewriteCond%{REQUEST_URI}!index.php '在它之上或它循环。 –

+0

编辑我的答案。我设法让我的系统工作(: –