我有以下重写设置:
RewriteRule r/(.*) scripts/report.php?cp=1&id=$1
重定向 mydomain.com/r/123abc 效果很好,但它会重定向服务器上以“r”开头的所有页面。有谁知道我如何才能更具体地只在 url 为 mydomain.com/r/ 时重定向?我应该注意,我需要保持这个通用性,所以我不能在规则中包含 mydomain.com。
我不确定这是否适合您(未经测试),但请尝试一下:
# Rewrite ini
RewriteEngine on
RewriteBase /mydomain.com/
# Redirect all /mydomain.com/r/* calls to scripts/report.php
RewriteRule ^r/(.*)$ scripts/report.php?cp=1&id=$1 [QSA]
希望有帮助。
试着在你的重写规则^/
前面加上一个。r/(.*)
这将使它:
RewriteRule ^/r/(.*) scripts/report.php?cp=1&id=$1
您应该指定 RegEx 应该匹配整个字符串,而不是只匹配字符串。您可以使用^
和$
符号执行此操作:
RewriteRule ^r/(.*)$ scripts/report.php?cp=1&id=$1