0

预期目标: 在现有网站上,我需要实施一个新网站。新站点需要“分阶段”实施,因此为“dev”和“test”和“site”创建了一个子目录。除了使用不同的用户帐户和数据库这一事实之外,所有三个子目录都包含相同的 php/mvc 实现。驻留在根目录中的当前站点也应保持正常工作。

当前配置尝试: 我在当前网站的根目录下放了一个 .htaccess 文件。

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^/dev(.*)$ <url>/dev/$1
RewriteRule ^/test(.*)$ <url>/test/$1
RewriteRule ^/site(.*)$ <url>/site/$1

注意:而不是有一个完整的网址。这应该将所有带有 'dev' 的 url 重定向到 /dev/$1 并且 $1 包含所有其余参数。

结果: 当调用'test'或'site'的'dev'主页时。主页显示得很好。

问题: 每次我单击菜单项或链接时,生成的 url 都会被重写为正确的 url,即:/dev/volunteering?page=volunteering&lang=nl

但我收到错误消息 404:

The requested URL /dev/volunteering was not found on this server.

请记住,它是关于自定义 mvc 实现的。

需要的帮助: 需要进行哪些更改才能使浏览器了解此类请求不应由当前网站处理,但根据“开发”或“测试”或“站点”,请求应转发到适当的以 mvc 实现理解的方式创建子目录?

4

1 回答 1

0

请试试这个:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(dev)(volunteering([^?]*)) $1/$2?page=$2&lang=nl [L,NC]
RewriteRule ^(test)(volunteering([^?]*)) $1/$2?page=$2&lang=nl [L,NC]
RewriteRule ^(site)(volunteering([^?]*)) $1/$2?page=$2&lang=nl [L,NC]
于 2013-03-03T17:18:39.507 回答