我需要用htaccess同时做两件事。
我需要使用以下网址:
http://client.example.com/123
并将目录重写为param,同时将另一个子域添加到url中,使其如下所示:
http://client.qa.example.com/?param=123
这会使param位正确,但我无法弄清楚如何添加subdir:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/[^/]+/?$
RewriteRule ^([^/]*)/?$ /?param=$1 [L]
答案 0 :(得分:1)
您可以使用RewriteCond
检查主机标头,并提取名称的相关部分。在重写中使用它们。 RewriteCond
中对匹配的回溯引用显示为%n
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} (.+?)\.(.*)
RewriteRule ^([^/]*)/?$ http://%1.qa.%2/?param=$1 [R,L]
(.+?)\.(.*)
将对第一个.
的所有内容进行匹配,然后对所有内容进行匹配。因此client
和example.com
将分别位于%1
和%2
答案 1 :(得分:1)
如果您的.htaccess位于var imageViewModel = function(item){
var self = this;
self.Rename = function(filePath){
self.src(filePath);
$parent.NotifyUser();
};
};
的根目录中,则应该是一个简单的重定向。当然,目录必须是伪目录,否则不会重定向。
$parent.NotifyUser();
答案 2 :(得分:0)
答案 3 :(得分:0)
最后让它使用:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} (.+?)\.(.*)
RewriteRule ^([^/]*)/?$ http://%1.qa.%2/?param=$1 [R,L]
现在我只需要弄清楚如何使用2个参数,因为参数2并不总是存在。