我开发了一个 PHP webshop 项目,它为每个客户独立工作。这意味着每个客户都安装自己的网店源文件 php.ini。
我发现这是维护许多网站的杀手,所以我决定将网上商店的源文件放在服务器的一个公共位置,并在 apache 服务器上创建一个别名,以便所有 www 客户都可以访问它。
然后每个客户在他们自己的 www 文件夹中都有自己的配置文件、日志文件夹、模板文件夹等。
我设法完成了上面所有的事情。但我的问题是网址。
URL 如下所示: http ://www.exampleshop.com/webshop/v1/index.php
我需要在 url 中隐藏 webshop/v1,使其如下所示: http ://www.exampleshop.com/index.php
我玩了 url rewrite mod 但它一直告诉 index.php 不存在,因为它确实在 exampleshop.com 的根目录中查找不正确的文件,它位于 /webshop/v1
有任何想法吗?备择方案。
希望有人可以提供帮助:-)
我设法通过以下方式完成了上述工作:-)
RewriteEngine On
#for admin pages redirection
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$/admin/index\.php$ /webshop/v1/admin/$1 [L]
#for webshop pages redirection
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /webshop/v1/$1 [L]
以上工作,但唯一的问题是它无法识别索引文件。当我在没有指定页面的情况下转到 url 时,它不起作用,因为索引文件不起作用。我必须输入完整的 url,例如 webshop.com/index.php 才能让它工作。
有没有办法删除扩展名:-)
无需在 url 中指定 index.php 也可以工作的解决方案
#if no file specified, forward to index
RewriteRule ^$ webshop/v1/ [L]
#if no file specified, forward to index
RewriteRule ^admin/$ webshop/v1/admin/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /webshop/v1/$1 [L]