1

也许这似乎是一个非常简单的问题,我的网站的网址写得很糟糕,所以我想重写它们。所以我准备激活mod_rewrite。问题如下:

假设我的 url 从 切换site_url/index.php?page=mypage&type=mytypesite_url/mypage/mytype,如果刷新页面会发生什么,是否有必要将相反的过程放入 .htaccess 文件进行重写?

4

2 回答 2

2

您需要重定向和重写的组合。URL 重写过程的大纲草案将是:

  • 如果 URL 包含.php,则 301/302 将请求重定向到其 SEO 友好版本。这将更改浏览器地址栏中的地址。
  • 如果请求了对 SEO 友好的 URL,请将其重写为其 PHP 版本。这不会更改浏览器地址栏中的地址。

这是一个非常基本的重写规则示例,它执行上述两个操作:

#
# redirect /index.php?page=somepage&type=sometype to friendly url
# 
RewriteCond %{THE_REQUEST} /index\.php
RewriteCond %{QUERY_STRING} page=(\w+)&type=(\w+)
RewriteRule ^index\.php$ /%1/%2? [R,L]

#
# rewrite /somepage/sometype to index.php
# 
RewriteRule ^(\w+)/(\w+)$ index.php?page=$1&type=$2
于 2013-01-12T18:12:40.387 回答
0

在 .htaccess 中,您应该转发映射...

^/(mypage)/(mytype) to index.php?page=$1&type=$2

但是应该不理会相反的情况。因此,直接请求site_url/index.php?page=mypage&type=mytype将简单地按原样传递。

所以,刷新不会改变任何东西。

于 2013-01-12T17:48:40.693 回答