我有一个非常愚蠢的使用 Apache 的 PHP 虚拟主机,这意味着我无法编辑 httpd.conf 文件来创建 VirtualHosts。所有配置都需要使用 .htaccess 文件完成。
我想为开发(本地主机)和实时服务器(但两种环境存在差异)使用单个 .htaccess 文件。
关于如何基于 HTTP_HOST 和使用 RewriteCond 进行不同的重定向,有很多答案。这对我没有用。
我需要在本地主机上以不同的方式做其他几件事(不仅仅是重定向)。这是我来自实时服务器的 .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
. 然后我可以在我的开发环境中同时拥有本地和服务器版本并更新它们。但是将规则放在一个文件中会好得多。
谢谢你的任何答案。