2012-12-30 98 views
0

可以将这两个.htaccess文件合并为一个?他们处理两个独立的PHP应用程序,它们完全分开了漂亮的URL处理。之所以我想尝试一个,是因为mod_security引发错误,并完全忽略了我的第二个链中的.htaccess文件,但似乎没有一个.htaccess文件的问题。我可以将这两个.htaccess文件合并为一个吗?

所以,如果有人去/ blah,第一个应用程序处理漂亮的URL处理。但如果有人去/ members/blah,第二个应用程序处理漂亮的URL处理。但是,请注意-f和-d参数,我们将检查实际文件或目录路径并允许这些路径通过。

在根:

RewriteEngine On 
RewriteRule ^index\.php$ - [L] 
RewriteRule ^members$ /members/ [QSA,L] 
RewriteRule ^members/(.*)$ /memberapp/$1 [QSA,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

在/ memberapp:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /memberapp/index.php [QSA] 

EDIT 1:

所以,这里的映射例子:

domain.com = domain.com/index.php 
domain.com/ = domain.com/index.php 
domain.com/?test=test = domain.com/index.php 
domain.com/members/test.png = domain.com/memberapp/test.png (file exists) 
domain.com/members/dir1 = domain.com/memberapp/dir1 (directory exists) 
domain.com/members/dir1/ = domain.com/memberapp/dir1 (ditto) 
domain.com/test = domain.com/index.php 
domain.com/members/login = domain.com/memberapp/index.php 
domain.com/members/test.php = domain.com/memberapp/test.php (file exists) 
domain.com/dir1 = domain.com/dir1 (directory exists) 
domain.com/dir1/ = domain.com/dir1 (directory exists) 
domain.com/test.png = domain.com/test.png (file exists) 
domain.com/members/login?test=test = domain.com/memberapp/index.php 
+0

¿这两种情况下的传入URI如何?从规则看起来像'domain.com/members /'应该映射到'domain.com/index.php'和'domain.com/memberapp /'应该映射到'domain.com/memberapp/index.php',但是我我不擅长猜测。一些URI示例将有所帮助。 –

+0

@FelipeAlamedaA我将编辑我原来的帖子来解释。 – Volomike

回答

1
RewriteEngine On 

RewriteRule ^index\.php$ - [L] 
RewriteRule ^members$ /members/ [R=302,L] 
RewriteRule ^members/(.*)$ /memberapp/$1 [QSA,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^membersapp/ /memberapp/index.php [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
+0

由于新工作的时间限制,我需要一些时间来测试。不过,我会尽快检查。 – Volomike

相关问题