2012-10-05 136 views
1

网站根目录包含三个目录说a,b,c都扮演根为不同的域获得在多主机环境干净网址参数

我在目录b创建一个.htaccess并添加下面的规则给它

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 
RewriteRule ^([^/]*)/?([^/]*)/$ /b/sample-page?bbi=$1&bbl=$2 [L] 

代替最后一行的上面,我也尝试过

RewriteRule ^b/([^/]*)/([^/]*)$ /b/sample-page?bbi=$1&bbl=$2 [QSA,L] 

使用上述规则

http://testsite.com/b/pageone.php被成功改写为

http://testsite.com/b/pageone 

http://testsite.com/b/sample-page.php?bbi=value1&bbl=value2

改写为http://testsite.com/b/sample-page?bbi=value1&bbl=value2代替

http://testsite.com/b/sample-page/value1/value2

http://testsite.com/sample-page/value1/value2 

回答

1

您需要添加一个L旗到你的其他规则:

RewriteRule ^(.*)$ $1.php [L] 

要处理的其他情况,则需要前一个添加规则

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^/b/([^/]+)/([^/]+)/([^/]+) 
RewriteCond %{DOCUMENT_ROOT}/b/%1.php -f 
RewriteRule ^/?([^/]+)/([^/]+)/([^/]+) $1.php?bbi=$2&bbl=$3 [L] 

这应该使它所以当你去http://testsite.com/b/sample-page/value1/value2,你得到服务的在/b/sample-page.php?bbi=value1&bbl=value2

+0

我试图按照您的回复,但不知何故无法得到它的工作.. –

+0

@RishiKalia对不起,测试的内容它在我自己的Apache安装,需要2'/ b'在最后2个条件 –

+0

这将是有益的,如果你可以来聊天.. –