我的htacces文件中有两条规则:
#rewrite pagnition
RewriteRule ^([a-zA-Z0-9_!-]+)/([a-zA-Z0-9_!-]+)$ index.php?sideID=$1¤tpage=$2
输出网址:http://example.com/blog/2
#rewrite services
RewriteRule ^([a-zA-Z0-9_!-]+)/([a-zA-Z0-9_!-]+)$ index.php?sideID=$1&p=services/oneservice/$2
输出网址:http://example.com/services/oneservice
第一个像魅力一样工作,但是当访问第二个时,我会多次重新加载页面出现问题,直到服务器崩溃。
如果我禁用了第一个,那么就像它应该的那样工作,如果任何人有这个好的解决方案,那么它会被淹没。
答案 0 :(得分:1)
这种情况正在发生,因为您的两个正则表达式都匹配相同的URL。像这样调整你的规则:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
# output url: http://example.com/blog/2
RewriteRule ^([\w!-]+)/([0-9]+)/?$ index.php?sideID=$1¤tpage=$2 [L,QSA]
# rewrite services
RewriteRule ^([\w!-]+)/([\w!-]+)$ index.php?sideID=$1&p=services/oneservice/$2 [L,QSA]