我有一個.htaccess文件,可以執行多個重寫命令並且運行良好。然而,在測試時,我遺漏了一個關鍵信息,在$ _SERVER變量中設置了id(我在php腳本中使用了$ _SERVER)。用mod_rewrite設置一個服務器變量,以及重定向
我有一個URL example.com/f/847f34c76f64cad96effc8e9c3cea176其中長字符串代表一個id和f代表處理請求的腳本。
我有以下重寫,它處理腳本部分。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteCond %{REQUEST_URI} !=/robots.txt
RewriteCond %{REQUEST_URI} ^/f/(.*)$ [NC]
RewriteRule^/scriptf.php [L]
就像我說的,這會正確處理重定向。但是,我也需要把id放在一個環境變量中。像這樣的東西是我在想的
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteCond %{REQUEST_URI} !=/robots.txt
RewriteCond %{REQUEST_URI} ^/f/(.*)$ [NC]
RewriteRule^- [E=id:$1]
RewriteRule^/scriptf.php [L]
但可惜這不起作用。
此外,在查詢中發送ID不是我的案例的有效解決方案。
編輯:參考錯誤日誌輸出:
[Tue Oct 08 10:48:31 2013] [error] [client 192.168.77.53] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
看起來你是在正確的軌道上,但你需要在你的ENV行使用'%1'而不是'$ 1',因爲你從'RewriteCond'匹配它。 –
我確實將其更改爲%1,但仍然收到500錯誤 –
查看錯誤日誌。你會發現500錯誤實際上是什麼。 –