.htaccess rewriterule到php页面无效

时间:2014-06-18 12:21:24

标签: php .htaccess url-redirection

我配置如下

    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 确定

因此,输入: 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

好的,我解决了。 问题是错误地将这个词重用于两个不同的路径。

1 个答案:

答案 0 :(得分: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>