2014-06-18 65 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

相关问题