htaccess通用重写规则

时间:2012-04-05 15:37:35

标签: php apache .htaccess redirect

我有以下重写设置:

RewriteRule r/(.*) scripts/report.php?cp=1&id=$1  

重定向mydomain.com/r/123abc非常有用,但它重定向服务器上以“r”开头的所有页面。有人知道如何使这个更具体,只有当网址是mydomain.com/r/时重定向? 我应该注意,我需要保持这种通用性,所以我不能在规则中包含mydomain.com。

3 个答案:

答案 0 :(得分:0)

我不确定这是否适合您(未经测试),但请尝试一下:

# 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]

希望有所帮助。

答案 1 :(得分:0)

尝试在^/重写规则前加r/(.*)。这样就可以了:

RewriteRule ^/r/(.*) scripts/report.php?cp=1&id=$1

答案 2 :(得分:0)

您应指定RegEx应匹配整个字符串,而不是仅匹配字符串。您可以使用^$符号执行此操作:

RewriteRule ^r/(.*)$ scripts/report.php?cp=1&id=$1