我需要目录中的所有php文件及其所有子目录均为json。这样,当我到达带有json扩展名的文件时,我将得到php文件。
示例:
/assets/json/file.php >>> /assets/json/file.json
/assets/json/user/list.php >>> /assets/json/user/list.json
我可以通过使用以下规则在.htaccess
目录中添加/assets/json
文件来部分实现此目的:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.json$ $1\.php [L]
使用这些规则,我可以在访问json文件时看到php内容。但是我不希望该php文件再次可见,因此我需要添加一个重定向,以便在用户键入php时将其重定向到json文件(不存在)
如果我添加R=301
,浏览器会将我重定向到http://localhost/home/localhost/public_html/assets/json/user/list.php
,而不是http://localhost/assets/json/user/list.json
我该怎么做?
答案 0 :(得分:2)
在同一个.htaccess中,还有另一个重定向规则:
RewriteEngine on
RewriteCond %{THE_REQUEST} (/.+?)\.php[\s?] [NC]
RewriteRule ^ %1.json [R=301,NE,L]
RewriteRule ^(.+)\.json$ $1.php [L,NC]