2014-01-08 37 views
2

我試圖實現與阿帕奇國防部重寫如下:怎樣的.htaccess重定向兩個MVC樹木

  1. 當我訪問本地主機/系統/這/是/一個/測試/時,的.htaccess國防部重寫應該重定向到我的index.php
  2. 當我訪問本地主機/系統/ API /這/是/一個/測試/和.htaccess國防部重寫應該重定向到我api.php

我一直在嘗試這幾個小時,但我似乎無法按照我想要的方式工作。目前所有訪問仍然指向索引,無論我嘗試什麼,我都無法使用.htaccess指向根據URL的api和索引。

以下是我目前的.htaccess文件:

ExpiresActive On 

ExpiresByType image/png "access plus 2 weeks" 
ExpiresByType image/jpg "access plus 2 weeks" 
ExpiresByType image/jpeg "access plus 2 weeks" 

AddType application/x-httpd-php .xml 

Options +FollowSymLinks 
Options -Indexes 

RewriteEngine On 

RewriteBase /system/ 

# file access exclusions 
RewriteRule ^(?!sitemap\.xml$).(.*)\.xml$ [R=404,L] 
RewriteRule ^(.*)\.log$ [R=404,L] 
RewriteRule ^(.*)\.txt$ [R=404,L] 

# Rewrite the request to API 
RewriteCond ${REQUEST_URI} ^api/(.*)$ [NC] 
RewriteRule ^(.*)$ api.php/$1 [L] 

# Rewrite the request to index 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?/$1 [QSA,L] 

可以在任何你給我解釋什麼,我做錯了什麼?這將是一個很大的幫助,非常感謝。

預先感謝您

回答

2

這個替換您的規則:

RewriteEngine On 

RewriteBase /system/ 

# file access exclusions 
RewriteRule ^(?!sitemap\.xml$).(.*)\.xml$ [R=404,L] 
RewriteRule ^(.*)\.(txt|log)$ - [R=404,L] 

# Rewrite the request to API 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^api/(.*)$ api.php/$1 [L] 

# Rewrite the request to index 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?/$1 [QSA,L] 
+0

謝謝anubhava,即工作。乾淨簡單。 – Erik

+0

不客氣,很高興它解決了。 – anubhava