2014-06-18 96 views
0

我配置如下的.htaccess重寫規則,以PHP頁面無法正常工作

RewriteBase/
    RewriteCond %{HTTP_REFERER} !^$ 
    RewriteCond %{HTTP_REFERER} !^http://(www.)?mydomain.com/.*$ [NC] 
    RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L] 
    AddDefaultCharset utf-8 


    <ifModule mod_gzip.c> 
    mod_gzip_on Yes 
    mod_gzip_dechunk Yes 
    mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ 
    mod_gzip_item_include handler ^cgi-script$ 
    mod_gzip_item_include mime ^text/.* 
    mod_gzip_item_include mime ^application/x-javascript.* 
    mod_gzip_item_exclude mime ^image/.* 
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
    </ifModule> 

    <FilesMatch "\.(jpg|jpeg|png|gif|swf)$"> 
    Header set Cache-Control "max-age=37739520, public" 
    </FilesMatch> 

    RewriteCond /%{REQUEST_FILENAME}.php -f 
    RewriteRule (.*).htm$ /$1.php [R=301,L] 

    ErrorDocument 400 /errore/errore.php?error=400 
    ErrorDocument 401 /errore/errore.php?error=401 
    ErrorDocument 403 /errore/errore.php?error=403 
    ErrorDocument 404 /errore/errore.php?error=404 
    ErrorDocument 500 /errore/errore.php?error=500 


    RewriteEngine On 
    RewriteRule ^folder/([a-zA-Z]{2})$ /folder/$1/ [QSA] 
    RewriteRule ^folder/([a-zA-Z]{2})/(.*)$ /folder/$2?lang=$1 [QSA] 
    RewriteRule ^folder/miky/(.*)$ /folder/miky.php?id=$1 [L,QSA] 
    RewriteRule ^folder/pippo/(.*)$ /folder/pippo.php?id=$1 [L,QSA] 

的重定向規則的前兩行是對語言的擴展。

打字www.mydomain.com/en/folder/miky/123456,我獲得www.mydomain.com/folder/miky/123456 OK

因此,打字:www.mydomain。 com/en/folder/pippo/123456 我應該重定向到:www.mydomain.com/folder/pippo.php?id=123456 但是,它不起作用。

在另一方面,打字www.mydomain.com/folder/pippo/123456我正確地重定向到www.mydomain.com/folder/pippo.php?id=123456

好的,我解決了它。 問題在於兩個不同路徑的單詞的錯誤重用。

+0

'是應當RewriteEngine敘述On'在頂部? – bloodyKnuckles

+0

'^ folder/pippo /(.*)/?$'應該涵蓋兩者。 – bloodyKnuckles

+0

@bloodyKnuckles「ReqriteEngine On」需要在RewriteRules聲明之前保持原樣。 – BeeBee

回答

0

下一個剛剛嘗試:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/ 
    RewriteRule ^pippo/(.*) /folder/pippo.php?id=$1 [NC,L] 
    RewriteRule ^pippo /folder/pippo.php [NC,L] 
</IfModule> 
+0

不,反正它不起作用。 – BeeBee

相關問題