如何编写RewriteRule来访问php文件作为html扩展名,标记文件位于名为domain.com/markfolder/mark.php的文件夹中
我在根目录
中得到了关注 Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RedirectMatch 301 (.*)\.html$ $1.php
及以下文件我试图找到domain.com/markfolder/.htaccess
尝试1
RewriteEngine on
RewriteRule ^mark\.php$ mark.html [NC,R]
试试2
RewriteEngine on
RewriteRule ^(.*)\.html $1\.php
尝试3
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^(.+)\.html$ $1.php [NC,L]
以上三种尝试简单不起作用。
答案 0 :(得分:0)
首先,根目录中的htaccess文件导致了问题。它将.html
重定向到.php
并且是mod_alias的一部分,而不是mod_rewrite。这意味着请求将由RedirectMatch
以及任何重写规则处理。所以首先将你的root htaccess更改为:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)\.html$ $1.php [L,R=301]
不确定为什么要永久重定向,因为这会影响所有请求甚至子目录中的请求。看起来它不是你想要的,只会打破你重写的任何尝试。
然后在markfolder的htaccess文件中:
RewriteEngine On
RewriteRule ^(.*)\.html$ $1.php [L]