1

動的な長さでURLを書き直したいWebサイトプロジェクトから始めています。たとえば、次のURLがサイトに存在する可能性があります。

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

これを修正する方法を知っている人はいますか?

4

1 に答える 1

1

私はこれを機能させました:.htaccessで:

Options +FollowSymLinks
RewriteEngine on

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

index.phpの場合:

<?php
    print_r(explode("/", $_GET['path']));
?>
于 2012-10-27T20:22:44.463 に答える