2010-01-22 53 views
0

我有兩個.htaccess文件,我需要合併成一個。如果沒有文件,重寫URL

第一個做一個簡單的文件擴展名卸妝。

第二個重寫所有請求去第三方應用程序,保持我們的URL。

我需要的是規則足夠聰明,不要看第二個服務器,如果該文件存在第一個。

規則1:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

規則2:

Options +FollowSymLinks +Indexes 
RewriteEngine on 
RewriteRule ^(.*)$ http://third.party.com/$1 [P] 
# RewriteCond %{THE_REQUEST}([^?\ ]+) 
# RewriteRule ^.*$ index.php/%1 

我根本不是一個.htaccess精靈,所以我尋求建議所有的耳朵。

回答

0

您可以添加L標誌以停止在給定規則下重寫。例如:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php [L] 

RewriteRule ^(.*)$ http://third.party.com/$1 [P] 
# RewriteCond %{THE_REQUEST}([^?\ ]+) 
# RewriteRule ^.*$ index.php/%1 

請參閱the mod_rewrite docs(搜索「停止重寫過程」)。

0

那麼你想要一個規則適用於一個站點,另一個適用於另一個站點?如果是,您可以使用RewriteCond%{HTTP_HOST}指令來限制其範圍。