我成功执行了1个RewriteRule。然后,我想要第二个RewriteRule附加到第一个RewriteRule的结果URL的末尾。
我有以下代码:
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^sports/football/?$ /sports/2018-19/sport_page.php?sport_id=1 [NC]
RewriteRule ^2018-19?$ %{REQUEST_URI}&season_id=39 [L,QSA,R]
第一个RewriteRule起作用-如果在URL中找到“ sports / football /”,它将根据请求进行重定向。
然后我要检查URL中是否存在“ 2018-19”,如果存在,我要在第一个ReWriteURL的结果末尾附加“&season_id = 39”。
用户转到:http://domain/sports/football/2018-19/
第一个RewriteRule:http://domain/sports/2018-19/sport_page.php?sport_id=1
第二个RewriteRule:http://domain/sports/2018-19/sport_page.php?sport_id=1&season_id=39
答案 0 :(得分:0)
您的RewriteRule需要检查完整的URL路径。
export const createTextFieldGroup = ({
label,
type,
secureTextEntry,
placeholder,
name,
value,
onChangeText,
disabled,
info,
error
}) => {
return (
...
)
}
上面的规则将产生重定向循环错误,因为模式和目标路径相同。为了解决这个问题,您可以在规则前放置以下import {createTextFieldGroup} from '../common/TextFieldGroup`;
...
render() {
<View>
{
createTextFieldGroup({
label: "First Name"
placeholder: "Please enter your first name..."
name: "firstName"
type: "text"
value: this.state.firstName
onChangeText: text => this.onChangeText(text, 'firstName')
error: errors.firstName
})
}
</View>
}
。
RewriteRule ^sports/football/2018-19/?$ %{REQUEST_URI}?season_id=39 [L,R]
上面的RewriteCond确保当URI为RewriteCond
时该规则不执行。