我剛剛在這上面花了我生命的最後 10 個小時,而且我一直在兜圈子,所以希望有人能夠幫助我。
我想要載入一個特定的 URL,如下所示:
當這樣的格式的 URL 命中時,我想將其重寫為命中伺服器:
http://example.com/generate.php?f=2011/image.png&attribute=small
基於上述,我的問題有二:
- 如何重寫 htaccess 中的 URL 來滿足我上述的要求?
- 如果原始 URL 沒有屬性查詢字串參數,如何確保屬性在透過 htaccess 存取伺服器時為 false/空白/等?
答案1
RewriteEngine On
# If it's not an existing file...
RewriteCond %{REQUEST_FILENAME} !-f
# ...and it's not an existing directory...
RewriteCond %{REQUEST_FILENAME} !-d
# ...and it starts with "f/" then rewrite it to generate.php
RewriteRule ^f/(.*)$ generate.php?f=$1 [L,QSA]
兩者RewriteCond
可以省略。更多資訊:
答案2
RewriteEngine On
RewriteRule ^([a-z]+)/([0-9]+)/image.png?attribute=small$ generate.php?f=$2/image.png&attribute=small&%{QUERY_STRING} [L]
答案3
這是一個有更多工作機會的人:
RewriteEngine On
# If it's not an existing file...
RewriteCond %{REQUEST_FILENAME} !-f
# ...and it's not an existing directory...
RewriteCond %{REQUEST_FILENAME} !-d
# ...and it starts with "f/" then rewrite it to generate.php
RewriteRule ^([a-z]+)/([0-9]+)/image\.png$ /generate.php?f=$1 [QSA,L]
請告訴我是否有效