我有两页:
categories.php 在categories.php页面中,我获取所有类别。
news.php在新闻页面中,我通过id获取新闻。
我已经将mod_rewrite用于分类:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-/]+)$ categories.php?url=$1
RewriteRule ^([a-zA-Z0-9-/]+)/$ categories.php?url=$1
site/categori1 ----> this rule works for categorie page是否可以打开两个不同的页面?(categories.php mod_rewrite news.php)
RewriteRule ^(a-zA-Z0-9-/+)$ news.php?url=$2 RewriteRule ^(a-zA-Z0-9-/+)/$ new.php?url=$2
站点/新闻-标题1以上规则不适用于news.php页面。
如何将mod_rewrite用于两个不同的页面?提前感谢
发布于 2011-07-04 04:21:37
您必须更具体地说明您的正则表达式所匹配的内容:
'^(a-zA-Z0-9-/+)$‘将匹配几乎所有内容。
您需要确定分类页面与新闻页面的不同之处,并进行匹配,例如:
RewriteRule ^category/([a-zA-Z0-9-/]+)$ categories.php?url=$1
RewriteRule ^category/([a-zA-Z0-9-/]+)/$ categories.php?url=$1
RewriteRule ^news/([a-zA-Z0-9-/]+)$ news.php?url=$1
RewriteRule ^news/([a-zA-Z0-9-/]+)/$ news.php?url=$1您可以用其他方式区分规则,但您必须这样做。
例如,您可以重新排列我上面建议中的规则,使类别规则捕获不带新闻前缀的所有内容:
RewriteRule ^news/([a-zA-Z0-9-/]+)$ news.php?url=$1
RewriteRule ^news/([a-zA-Z0-9-/]+)/$ news.php?url=$1
RewriteRule ^([a-zA-Z0-9-/]+)$ categories.php?url=$1
RewriteRule ^([a-zA-Z0-9-/]+)/$ categories.php?url=$1发布于 2011-07-04 04:28:05
www.site.com/news-title1和www.site.com/category1基本上匹配相同的URL,因此mod_rewrite不能最终决定重定向到哪里。除了你已经拥有的东西之外,我还建议你做以下几点:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^news-([a-zA-Z0-9-/]+)/?$ news.php?url=$1 [L,NC,QSA]
RewriteRule ^([a-zA-Z0-9-/]+)/?$ categories.php?url=$1 [L,NC,QSA]现在,类型为www.site.com/news-some-title的URI将被转发到www.site.com/news.php?url=some-title (任何以URI开头的URI
并且类型为www.site.com/some-category的URI将被转发到www.site.com/category.php?url=some-category
https://stackoverflow.com/questions/6565274
复制相似问题