我正在尝试修改一个重定向规则,但它并不像我想要的那样工作。也许有人可以调查并提出需要纠正的建议。
我有这条规则:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)/$ /page.php?id=$1 [L]
规则会将www.site.com/page.php?id=one
重定向到www.site.com/one/
,这是我需要做的。
但是,相同的规则会将www.site.com/about-us/
等所有其他网页重定向到www.site.com/page.php?id=
。
规则中需要更改哪些内容才能重定向我想要的页面,而不是所有其他页面?
答案 0 :(得分:0)
您可以限制您的规则:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(one|two|three)/$ /page.php?id=$1 [L,QSA]
答案 1 :(得分:0)
我能想到的唯一方法是在要忽略或重写的URL中插入一个标识符键。
e.g。下面的代码将按http://www.example.com/one-1/
http://www.example.com/page.php?id=one-1
RewriteRule ^([a-zA-Z0-9-_]+)-([0-9]+)/$ /page.php?id=$1 [L]