我配置如下的.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