假设我在共享的Web根目录下存储了三个小型Web应用程序:
每个应用程序都有一个.htaccess
文件,其中包含一些不相同的mod_rewrite
语句来重写网址,如
RewriteCond %{REQUEST_URI} ^/app1/([^/]+)/([^/]+)\.html$
RewriteRule .* /app1/index.php?selectedProfile=%1&match=%2&%{QUERY_STRING}
现在,我想在每个.htaccess
目录中都有一个泛型 /app{n}
文件。因此,RewriteConds中没有RewriteBase
和/app{n}
前缀。
我的一个想法是让第一级也成为通配符目录:
RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)/([^/]+)\.html$
只有在输入.htaccess
目录时才会触发/app{n}
文件,这应该可以。
这是一个可以接受的解决方案吗?
还有其他更好的吗?
答案 0 :(得分:2)
您无需指定完整路径。您可以使用从基本路径解析的相对路径。
所以试试这条规则:
RewriteRule ^([^/]+)/([^/]+)\.html$ index.php?selectedProfile=$1&match=$2 [QSA]
您甚至可以在文档根目录中使用此单个规则:
RewriteRule ^(app\d+)/([^/]+)/([^/]+)\.html$ $1/index.php?selectedProfile=$2&match=$3 [QSA]