2014-11-24 74 views
1
RewriteEngine on 
RewriteCond %{REQUEST_URI} !(\.|/$) 
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ api.php?url=$1 [L] 

上面顯示了我當前的配置。htaccess - 通過php文件重定向所有內容

的問題,這是它似乎只被重定向如果目錄或文件的htaccess文件所在的文件夾後存在。

我怎麼能改寫這個所以它字面上每一個請求只是重定向到api.php與完整的請求路徑?我不想看看目錄或文件是否存在於htaccess文件中,我可以在api.php中做到這一點,我只是想通過該文件推送所有請求。

回答

1

您可以使用:

RewriteEngine on 

RewriteCond %{REQUEST_URI} !(\.|/$) 
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L] 

RewriteRule ^((?!api\.php$).*)$ api.php?url=$1 [L,QSA,NC] 

先行(?!api\.php$)手段改寫一切,除了/api.php/api.php與查詢參數url

+1

非常感謝之前有這樣的。 – jskidd3 2014-11-24 18:55:57

+0

不客氣,很高興它解決了。 – anubhava 2014-11-24 19:03:42

0

這樣的:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^?]*)$ /api.php?path=$1 [NC,L,QSA] 

確保你的路線

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d