RewriteRule 跨环境保留路径

RewriteRule 跨环境保留路径

我正在尝试制定一些适用于我的本地工作目录和生产的重定向规则。问题是我的本地开发环境通过“localhost/exp”工作,而生产从域“www.lorem.com”的根目录工作。

正在做:

RewriteEngine On
RewriteCond ^rec.php /core/rec [R=301,L]

在生产中工作无忧,但在我的本地它重定向到:“localhost / core / rec”,而我希望它是“localhost / exp / core / rec”

我不希望在其中硬编码“exp”,到目前为止,我发现唯一的方法是为每个环境设置单独的规则,我可以在我的本地使用中使其工作:

RewriteEngine On
RewriteCond %{REQUEST_URI} (.*)/exp/(.*)
RewriteRule ^rec.php /exp/core/rec [R=301,L]

非常感谢您的帮助。谢谢!

答案1

在您的 RewriteRule 前面加上与任何“服务器内部”匹配的 RewriteCond 作为前缀。 查看服务器内部组件的完整列表这里

服务器名称是我突然想到的最好用的方法,例如,它会在你的 RewriteRule 中使用这个(附加)前缀:

RewriteCond %{SERVER_NAME} localhost

或者对于 localhost 以外的其他主机:

RewriteCond %{SERVER_NAME} !localhost

相关内容