我在使用mod_rewrite时遇到了一些困难,这是我要完成的工作
在我的情况下,/ c / TENANT_CODE /用于在多租户系统上标识我的租户。 TENANT_CODE将由一位客户更改为另一位客户。
示例:
访问静态图片
http://localhost/c/dev/img/someimage.png
在这种情况下,服务器上存在映像,因此我只想返回现有映像。我想将网址重写为http://localhost/img/someimage.png。
访问路线
http://localhost/c/dev/some/route
在这种情况下,http://localhost/some/route不存在,因此我想将其发送到index.php主页面,以便laravel可以对其进行处理。
这是我到目前为止所拥有的,但是不起作用
RewriteCond %{REQUEST_URI} ^/c/([^/]*)(/.*)$
RewriteRule ^/c/([^/]*)(/.*)$ $2 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [QSA,L]
谢谢您的评论
答案 0 :(得分:0)
您的第一个规则应该有效,但是您不需要该条件。
RewriteRule ^/c/([^/]*)(/.*)$ $2 [QSA,L]
其余请尝试使用SCRIPT_FILENAME
:
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule .* index.php [QSA,L]