2012-07-21 55 views
0

如何重寫進來的請求以使其全部小寫?我環顧四周,一些答案是使用重寫模塊,但這些不是針對使用反向代理的特定情況。在Apache服務器上強制使用反向代理服務器的小寫URL

我想是一個針對於這樣的請求:

http://mywebsite/SomeApPlIcAtIon

轉換爲這樣的:

http://mywebsite/someapplication/

有什麼建議?

UPDATE:

我有它設置什麼我以爲應該是正確的,我的httpd.conf看起來是這樣的:

servername localhost 
RewriteEngine on 
RewriteLog "/var/log/apache2/rewrite.log" 
RewriteLogLevel 9 
RewriteMap lc int:tolower 
RewriteCond %{REQUEST_URI} [A-Z] 
RewriteRule (.*) ${lc:$1} [R=301,L] 

我的反向代理是在一個文件中的設置conf.d稱爲sabnzbd.conf這樣:

ProxyRequests Off 
ProxyPreserveHost On 
<Proxy *> 
    Order allow,deny 
    Allow from all 
</Proxy> 
ProxyPass /sabnzbd/ http://192.168.21.21:9999/sabnzbd/ 
ProxyPassReverse /sabnzbd http://192.168.21.21:9999/sabnzbd/ 

在我啓用的網站,我的000-defailt我都AllowOverride設置爲All

當我去192.168.21.21/sabnzbd/它工作得很好。

當我轉到192.168.21.21/SABNZBD/時,我得到了404。重寫規則不起作用。

當我去我的重寫日誌文件檢查出來,沒有數據。

什麼問題?

+0

爲什麼客戶端不發送正確的url? – qrtt1 2012-07-21 16:02:55

+0

看到這個答案:http://webmasters.stackexchange.com/a/18740 – complex857 2012-07-21 16:04:08

回答

0

假設你在Ubuntu上使用Apache服務器 - 你可以使用mod_rewrite模塊。

你可以關注這個博客(URL:http://www.chrisabernethy.com/force-lower-case-urls-with-mod_rewrite/),它描述了配置模塊的步驟。

+0

什麼我不確定,是重寫規則應該去的地方。我目前沒有使用.htaccess文件。它應該在httpd.conf中進行嗎? – 2012-07-21 16:18:34

+0

從技術上講,它將以任何方式工作 - .htaccess文件只適用於放置它的文件夾和子文件夾。建議將規則放入httpd.conf文件中。除非需要.htaccess文件不應該被使用 - 它有性能以及安全問題。你可以參考Apache的官方文檔。 – 2012-07-21 16:23:31

相關問題