我從來沒有使用mod_rewrite
之前,所以我跟我的用例建立一個適當的規則掙扎。的mod_rewrite如果子目錄中的文件不存在
我有一個網址尋找這樣的:domain.com/pict/123456
目錄結構像這樣:
/pict/ |-- autogenerated/ |-- 12345.png |-- 87654.png |-- gen.php |-- .htaccess
什麼,我想實現的是:
如果12345.png
不存在autogenerated
, 重寫網址爲gen.php?id=12345
else else autogenerated/12345.png
文件
我曾嘗試在互聯網上找到各種解決方案(以及大多數答案#1的 - 都無濟於事)。
我.htaccess
文件看起來像這樣:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond autogenerated/%{REQUEST_FILENAME}.png -f
RewriteRule ^(.+)$ autogenerated/$1.png [L]
RewriteRule ^(.*)$ generate.php?id=$1 [QSA,L]
</IfModule>
我也試圖改變RewriteCond
像這樣:
RewriteCond autogenerated/$1.png -f
RewriteCond autogenerated/%{REQUEST_URI}.png -f
RewriteCond %{DOCUMENT_ROOT}/autogenerated/%{REQUEST_FILENAME}.png -f
RewriteCond %{DOCUMENT_ROOT}/autogenerated/$1.png -f
RewriteCond %{DOCUMENT_ROOT}/pict/autogenerated/%{REQUEST_FILENAME}.png -f
RewriteCond %{DOCUMENT_ROOT}/pict/autogenerated/$1.png -f
而且無論我做什麼,第一重寫規則從未觸發,一切都被髮送到gen.php
我在這裏缺少什麼?
兩個REQUEST_FILENAME和REQUEST_URI包含路徑信息。 //你的htaccess文件位於根目錄或pict文件夾中? – CBroe
哦。我認爲REQUEST_FILENAME只包含最後經過什麼是「/」 我'htaccess'文件是內部「PICT」文件夾 – Tomaski