重写URL来回使用mod_rewrite(Rewriting urls back and forth

2019-10-17 14:04发布

也许它会显得很简单的问题,我的网站的网址是非常写的,所以我想重写它们。 所以我准备激活mod_rewrite的。 现在的问题是:

假设我的网址开关从site_url/index.php?page=mypage&type=mytypesite_url/mypage/mytype ,如果刷新页面会发生什么,是否有必要把.htaccess文件中,用于转移到重写逆过程?

Answer 1:

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

  • 如果URL中包含.php ,301/302请求重定向到它的搜索引擎友好的版本。 这将改变在浏览器地址栏中的地址。
  • 如果请求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


Answer 2:

在.htaccess,你应该做它映射前进...

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

但反过来,应单独留在家中。 所以直接请求site_url/index.php?page=mypage&type=mytype只会原样传递。

因此,刷新也不会改变任何东西。



文章来源: Rewriting urls back and forth using mod_rewrite