我很难让这个htaccess工作
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} /([temp|ox|cond|new-url]+)/
RewriteRule ^([A-Za-z]+)/([A-Za-z]+)$ graph.php?grap=$1&time=$2 [NC,L]
在将new-url
条件添加到重写条件之前,它正常运行
我还尝试将new\-url
和new/-url
放在一起,但也无法使用
我做错了什么?
答案 0 :(得分:2)
我认为您的文件中存在一些错误。
首先,([temp|ox|cond|new-url]+)
与([cdelmnoprtuwx|-]+)
相同。在这里,您要搜索字符,而不是字词。如果我理解,您正在寻找以/temp/
,/ox/
,/cond/
或new-url
开头的网址。所以我会用这个条件:
RewriteCond %{REQUEST_URI} ^/(temp|ox|cond|new-url)/
其次,当您匹配new-url
时,会有一个破折号。但是你的下一条规则并不接受任何冲刺!改变这个:
RewriteRule ^([a-z-]+)/([a-z-]+)$ graph.php?grap=$1&time=$2 [NC,L]
注意:
[a-z]
代替[A-Za-z]
,因为您的规则并未考虑帐户([NC]
)[a-z-]
答案 1 :(得分:1)
我认为你需要逃避 - 内部角色类。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} /([temp|ox|cond|new\-url]+)/
RewriteRule ^([A-Za-z]+)/([A-Za-z]+)$ graph.php?grap=$1&time=$2 [NC,L]
如果这不能解决问题,您可以使用简单的模式:
RewriteCond %{REQUEST_URI} /(temp|ox|cond|new-url)/?