渴望的目标: 在现有网站上,我需要实施一个新网站。新站点需要“暂存”实现,因此创建了“dev”和“test”以及“site”的子目录。除了使用不同的useraccounts和数据库之外,所有三个子目录都包含相同的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'的网址重定向到/ dev / $ 1,$ 1包含所有其他参数。
结果: 当调用'test'或'site'的'dev'的主页时。主页显示完美。
问题: 每次我点击菜单项或链接时,生成的网址都会被重写为正确的网址:/ dev / volunteering?page = volunteing&amp; lang = nl
但我收到错误消息404:
The requested URL /dev/volunteering was not found on this server.
请记住,这是关于自定义mvc实现。
必需的帮助: 需要进行哪些更改才能使浏览器理解当前网站不应处理此类请求,但根据“dev”或“test”或“site”,请求应转发到此类请求的相应子目录中。 mvc实现理解的方式?
答案 0 :(得分: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]