我有一個已經存在的PHP腳本,最近我想集成Slim框架。htaccess使用「this.php」如果不符合上述條件
我希望獲得的是使用Slim路由作爲最後的手段,如果我現有的所有重寫條件都不符合,這意味着Slim也會處理404頁。
修身框架的.htaccess重寫規則是:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule^index.php [QSA,L]
,但因爲我已經有現有index.php
我使用this.php
代替實例苗條,所以它應該是
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule^this.php [QSA,L]
這裏來這個問題,我已經有了我想保留的預先存在的重寫規則,這裏有一些重寫規則:
Options +FollowSymLinks
RewriteEngine on
RewriteBase/
# Rewrite to www
RewriteCond %{HTTP_HOST} ^example.com [nc]
RewriteRule ^(.*)$ https://www.example.com/$1 [r=301,nc,l]
RewriteRule ^category/([^/]*)/?$ category.php?console=$1 [L,QSA]
RewriteRule ^category/([^/]*)/([^/]*)$ category.php?console=$1&page=$2 [L,QSA]
RewriteRule ^category-amp/([^/]*)/([^/]*)$ category-amp.php?console=$1&page=$2 [L,QSA]
RewriteRule ^games/([^/]*)/?$ games.php?console=$1 [L,QSA]
RewriteRule ^forum^(.*)$ index.php
RewriteRule ^download.php?$ $1/new-page$2 [R=301,L]
因此,如果上述任何模式不符合,我希望他們改用this.php
。
如果我添加
RewriteRule^this.php [QSA,L]
到規則的底部。問題是,使用它時,上面的每條規則都被忽略,導致所有查詢重定向到this.php
,這會引發Slim的404錯誤。我如何使htaccess先檢查規則是否設置爲RewriteRule^this.php [QSA,L]
以上,然後纔將其最終傳遞給this.php
?
希望有人能幫助。
能否請您解釋一下爲什麼它'[L]'而不是原來的'[QSA,L]'? –
只有在修改目標URI中的查詢字符串時才需要'QSA',並且在此規則中我們沒有這樣做。 – anubhava
非常感謝 –