我正在使用Mod_Rewrite创建一个网站。目前,所有网址都被重定向到最后的.php
页面名称。
但/about/
和/photos/
应重定向到page.php?page=about
和page.php?page=photos
。
有办法做到这一点吗?
当前代码:
RewriteEngine on RewriteBase /new/
RewriteRule ^about/$ /new/page.php?page=about [L]
RewriteRule ^([^/]*)/$ /new/$1.php [L]
RewriteRule ^blog/([^/]*)/$ /new/blog.php?page=$1 [L]
RewriteRule ^blog/post/([^/]*)/$ /post.php?post=$1 [L]
RewriteRule ^blog/category/([^/]*)/$ /category.php?category=$1 [L]
答案 0 :(得分:1)
这是你想要的吗?
RewriteRule ^blog(/?)$ /new/blog.php [L]
RewriteRule ^blog/([^/]*)(/?)$ /new/blog.php?page=$1 [L]
RewriteRule ^blog/post/([^/]*)(/?)$ /post.php?post=$1 [L]
RewriteRule ^blog/category/([^/]*)(/?)$ /category.php?category=$1 [L]
RewriteRule ^(?!blog)([^/]*)(/?)$ page.php?page=$1 [L]
答案 1 :(得分:0)
这很简单:
RewriteRule ^about/$ page.php?page=about
RewriteRule ^photos/$ page.php?page=photos
答案 2 :(得分:0)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)/$ /page.php?page=$1 [L,QSA]
</IfModule>
[L]指令的意思是“最后”,因此如果匹配此指令,它将不再继续应用任何进一步的重写规则。
[QSA]指令允许您将查询参数附加到重写的地址。
如果博客重写,您需要做的就是最后一条规则。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)/$ /new/$1.php
RewriteRule ^blog/(.*)/$ /new/blog.php?page=$1 [L]
RewriteRule ^blog/post/(.*)/$ /post.php?post=$1 [L]
RewriteRule ^blog/category/(.*)/$ /category.php?category=$1 [L]
RewriteRule ^(.*)/$ /page.php?page=$1 [L,QSA]
</IfModule>