我正在使用php构建一个页面管理员,并且有一个功能可以让我创建其他页面的子页面。使用递归函数(基于who是谁的父亲),我最终得到一个链接列表,如:
<ul class="navList" id="navList">
<li><a href="http://mysite.com/Home">Home</a></li>
<li><a href="http://mysite.com/About">About</a></li>
<li><a href="http://mysite.com/Links">Link Page</a>
<ul>
<li><a href="http://mysite.com/Links/PHP_Links">PHP Links</a></li>
<li><a href="http://mysite.com/Links/JQuery_Links">JQuery Links</a></li>
<li><a href="http://mysite.com/Links/Contributors">Contriubutors</a>
<ul>
<li><a href="http://mysite.com/Links/Contributors/Blog">Blog</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="http://mysite.com/Portfolio">Portfolio</a></li>
</ul>
因此,您可以看到最终可能有多个目录。现在,我的问题是,我如何使用mod_rewrite预测和处理这个问题?我有一个脚本我用于目录可能只有一层深度的情况,但是经过一个目录的任何东西都会重新路由到主页作为错误......
RewriteEngine On
RewriteRule ^([^/.]+)/([^/.]+)$ index.php?category=$1&page=$2 [L,NC]
RewriteRule ^([^/.]+)/$ index.php?category=$1 [L,NC]
RewriteRule ^([^/.]+)$ index.php?page=$1 [L,NC]
ErrorDocument 404 /index.php?page=home
ErrorDocument 403 /index.php?page=home
我认为这是一个逻辑问题。
思想?
答案 0 :(得分:3)
好的,所以,在这里写出来似乎有所帮助。这就是我做的......
我改变了我的mod_rewrite给我发了整个字符串
RewriteEngine On
RewriteRule ^([^.*]+)$ index.php?page=$1 [L,NC]
然后在我的php中,我使用'/'
爆炸$ page$dirStructure = explode('/',$page);
所以,如果网址是链接/博客/思考我会得到一个数组,我可以像:
Array
(
[0] => Links
[1] => Blog
[2] => Thoughts
)
然后我可以查找与数组的最后一个元素对应的页面。
答案 1 :(得分:0)
我认为你必须手工完成这个:
RewriteEngine On
RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)$ index.php?category=$1&page=$2&subpage=$3 [L,NC]
RewriteRule ^([^/.]+)/([^/.]+)$ index.php?category=$1&page=$2 [L,NC]
RewriteRule ^([^/.]+)/$ index.php?category=$1 [L,NC]
RewriteRule ^([^/.]+)$ index.php?page=$1 [L,NC]