【发布时间】:2014-10-23 15:05:44
【问题描述】:
我的网页上有这个目录结构:
rootOfweb/services/oneservice/service1.php
rootOfweb/services/oneservice/service2.php
rootOfweb/services/anothersercice/service1.php
rootOfweb/services/anothersercice/service2.php
www.example.com/index.php?sideID=nameOfService&p=services/oneservice/service2
我在 php 中有这段代码,包括所需的文件:
<?php
if(isset($_GET["p"]))
{
$side = $_GET["p"];
include ($side.'.php');
}
?>
我在不同的子目录上有不同的名称,并且我制作了一个 mod_rewrite 可以在以下条件之一下工作:
RewriteRule ^([a-åA-Å0-9_!-]+)/([a-åA-Å0-9_!-]+)$ index.php?sideID=$1&p=services/oneservice/$2
aboue 规则适用于第一个服务(rootOfweb/services/oneservice/ -all service files -)
我需要创建一个适用于所有子目录的规则。
【问题讨论】:
-
问题又出在你漂亮的 URL
http://example.com/services/subfile1不包含subdir/YYYY因此你必须在目标中硬编码它。如果您可以将漂亮的 URL 保留为:http://example.com/services/subdir/YYYY/subfile1,那么一个重写规则可以处理所有此类情况。 -
重写会是什么样子?你能举个例子吗?
标签: regex apache .htaccess mod-rewrite redirect