我实现了重定向以符合以下规则:
以.php重定向到.php?lang = en
结尾的所有内容以文件夹重定向到index.php?lang = en
结尾的所有内容我的问题是,如果最终包含* .php以外的任何文件,我如何处理请求而不进行重定向:
RewriteCond %{REQUEST_URI} !(.*?).php [nc] RewriteCond %{HTTP_HOST} ^([^\.]+)\.([^\.]+)\.([^\.]+)$ RewriteRule ^(.*)$ http://d.com/$1/index.php?lang=%1 [R=301,L,QSA] RewriteCond %{REQUEST_URI} !^/.php [nc] RewriteCond %{HTTP_HOST} ^([^\.]+)\.([^\.]+)\.([^\.]+)$ RewriteRule ^(.*)$ http://d.com/$1?lang=%1 [R=301,L,QSA] RewriteCond %{REQUEST_URI} !^/$ RewriteCond %{HTTP_HOST} ^([^\.]+)\.([^\.]+)\.([^\.]+)$ RewriteRule ^(.*)$ http://d.com/$1?lang=%1 [R=301,L,QSA] RewriteCond %{REQUEST_URI} ^/$ RewriteCond %{HTTP_HOST} ^([^\.]+)\.([^\.]+)\.([^\.]+)$ RewriteRule ^(.*)$ http://d.com/$1index.php?lang=%1 [R=301,L,QSA]
也可以获得有关我的规则的反馈或改进它们的建议。
答案 0 :(得分:0)
RewriteCond %{REQUEST_URI} !^/.php
这种情况从未得到满足,因为它会检查uri值是否以 / .php 开头,
将其更改为:
RewriteCond %{REQUEST_URI} !^/.*\.php