我正在尝试制定一些适用于我的本地工作目录和生产的重定向规则。问题是我的本地开发环境通过“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