我在Apache上有一个非常愚蠢的PHP虚拟主机,这意味着我无法编辑httpd.conf文件来创建VirtualHosts。所有配置都需要使用.htaccess文件完成。
我想为开发(localhost)和实时服务器使用单个.htaccess文件(但两种环境都有差异)。
关于如何基于HTTP_HOST和使用RewriteCond进行不同的重定向有很多答案。这对我没用。
我需要在localhost上以不同的方式做其他几件事(不仅仅是重定向)。这是来自实时服务器的示例.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
php_value session.save_path "/www/doc/...masked.../app/sessions"
php_value session.gc_maxlifetime 86400
php_value session.cookie_lifetime 86400
php_value session.gc_probability 1
php_value session.gc_divisor 1
php_value pcre.recursion_limit 1000000
php_value pcre.backtrack_limit 1000000000
RewriteRule ^13/phpinfo.php$ index.php [L]
# front controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>
请注意php_value调用。我不知道如何只在实时服务器上执行它们。而且我不想用ini_set()PHP调用“替换”它们(我的主机禁止它)。
有一种简单的方法可以在一个文件中执行此操作吗?问题的根源是难以管理文件的两个版本,其中一个版本无法在本地存储(因为两个文件的名称相同)。
我可以想到一个解决方法 - 在localhost上设置不同的AccessName,例如到.localaccess
。然后我可以在我的开发环境中同时拥有本地和服务器版本并更新它们。但是将规则放在一个文件中会好得多。
感谢您的回答。