我在向apache .htaccess添加默认重写php和html请求时遇到问题。
我们的想法是为我网站上的内容设置模板,指定文件夹中的内容使用特定模板。它适用于HTML,图像和其他资源;请求很好地重写到模板。但我得到一个递归问题重写请求到php资源,因为该模板也是一个PHP资源...也许在逻辑上足够。
是否有可能将php-to-php限制为单次重写?或者我需要另一种方法吗?
这个规则是我的问题:
RewriteRule ^(.*).(php$) /_templates/default.php?$1.$2 [NC,L]
以下是我的.htaccess ...
...谢谢
# Template rewrites:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(subpages/.*) /_templates/present.php?$1 [NC,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*).html$ /_templates/default.php?$1 [NC,L]
RewriteRule ^(.*).(php$) /_templates/default.php?$1.$2 [NC,L]
答案 0 :(得分:0)
你可以像这样添加一个RewriteCond:
RewriteCond $1 !^_templates/
RewriteRule ^(.*).php$ /_templates/default.php?$1.php [NC,L,B]
我还添加了B
标志,因为您在查询字符串中使用了反向引用。
答案 1 :(得分:0)
您可以添加排除规则:
RewriteRule /_templates/default.php(.*)$ $ 0 [L]
$ 0是原始请求,[L]表示该请求将运行的最后一条规则