我配置如下的.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
好的,我解决了它。 问题在于两个不同路径的单词的错误重用。
'是应当RewriteEngine叙述On'在顶部? – bloodyKnuckles
'^ folder/pippo /(.*)/?$'应该涵盖两者。 – bloodyKnuckles
@bloodyKnuckles“ReqriteEngine On”需要在RewriteRules声明之前保持原样。 – BeeBee