Apache rewrite 出現 400 Bad Request 的解決方法


<VirtualHost *:80 *:81>    
    ServerAdmin deng5765@163.com    
    DocumentRoot /active/www/yingchao123/trade    
    ServerName trade.test.yingchao123.com
    ServerAlias trade.yingchao123.com
    
    RewriteEngine On
    RewriteRule ^([\da-z]{1,10})$ ./index.php?mod=list&do=unique&alias=$1 [L]    
    RewriteRule ^([\da-z]{1,10})&(.+)$ ./index.php?mod=list&do=unique&alias=$1&$2 [L]
</VirtualHost>

但這樣寫會出現 出現 400 Bad Request 錯誤

解決方法是將rewrite規則寫倒directory中:

<VirtualHost *:80 *:81>    
    ServerAdmin deng5765@163.com    
    DocumentRoot /active/www/yingchao123/trade    
    ServerName trade.test.yingchao123.com
    ServerAlias trade.yingchao123.com

    <Directory "/active/www/yingchao123/trade">
        RewriteEngine On
        RewriteRule ^([\da-z]{1,10})$ ./index.php?mod=list&do=unique&alias=$1 [L]        
        RewriteRule ^([\da-z]{1,10})&(.+)$ ./index.php?mod=list&do=unique&alias=$1&$2 [L]
    </Directory>
</VirtualHost>

重啟Apache,問題解決

 說明:apache檢查配置是否語法錯誤httpd.exe -t 或者apachectl -t,nginx對應的命令是nginx -t


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM