.htaccess在存在php或html文件的情况下交付资源
我的任务是将一个遗留站点迁移到一个新的宿主,同时在那里放置一个新网站。使用archive.domain.tld仍然可以访问旧的旧站点 旧式网站上的链接看起来要么像这样:.htaccess在存在php或html文件的情况下交付资源,.htaccess,.htaccess,我的任务是将一个遗留站点迁移到一个新的宿主,同时在那里放置一个新网站。使用archive.domain.tld仍然可以访问旧的旧站点 旧式网站上的链接看起来要么像这样:/foo/bar/baz.php要么像/foo/bar/baz.html,但也有很多链接看起来像/foo/bar/baz。它表明,旧的提供者在其apache配置中有某种规则,首先查看资源是否存在,如果不存在,则在添加.php时查看资源是否存在,如果不存在,则在添加.html时查看资源是否存在 我想归档的是同样的行为。 请求http
/foo/bar/baz.php
要么像/foo/bar/baz.html
,但也有很多链接看起来像/foo/bar/baz
。它表明,旧的提供者在其apache配置中有某种规则,首先查看资源是否存在,如果不存在,则在添加.php
时查看资源是否存在,如果不存在,则在添加.html
时查看资源是否存在
我想归档的是同样的行为。
请求https://archive.domain.tld/foo/bar/baz
我知道,我可以像Symfony那样将所有流量重写为一个
.php
文件,但如何使用.htaccess
文件实现此“路由”您可以在Apache配置或根目录中使用这些规则。htaccess:
RewriteEngine On
# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
# .php extension
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
# .html extension
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+?)/?$ $1.html [L]
完美,正是我想要的!(我以前有一个更难看的解决方案“有效”,但这正是我一直在寻找的!)编辑:必须再等6分钟才能接受你的答案。我还建议保留这些规则和评论,以便网站管理员知道每个规则在做什么。