我需要一个允许完全停止的重写规则。我怎么能允许这个?我想要的是 商店/域名/ www.test.com成为商店/域名/ controller.php?param1 = www.test.com
我的原始规则如下:
RewriteRule ^ shop / domain /([^/.]+)/?$ shop / stock / controller.php?param1 = $ 1 [NC]
这只有在我删除句号时才有效。
我也尝试了以下内容:
RewriteRule ^ shop / domain /([^ /] +)/?$ shop / domain / controller.php?param1 = $ 1 [NC]
这允许完全停止,但是当它应该是www.test.com时,控制器.php是参数。
答案 0 :(得分:0)
如果所有域名都以“www。”开头,则可以执行此操作
RewriteRule ^shop/domain/www\.([^/]+)/?$ shop/domain/controller.php?param1=$1 [NC,L]
您的规则存在的问题是,它也与controller.php
匹配,就好像它是一个域一样。您可以添加以下两个重写条件以防止这种情况:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^shop/domain/([^/]+)/?$ shop/domain/controller.php?param1=$1 [NC,L]
!-d
表示不是现有目录,!-f
表示不是现有文件(例如controller.php
)。