【问题标题】:Automatic URL Rewriting自动 URL 重写
【发布时间】:2010-08-10 13:10:26
【问题描述】:

我已经创建了 .htaccess 文件。

原网址是:

http://example.com/folder/page.php?page=1&ipp=All&link=view_link

重定向:

http://example.com/folder/page/1/All/link.html

重定向工作正常。但是,现在问题是,

仅当我手动提供重写的 URL 时才会重定向。 但它应该只自动执行。

我的要求是如果有人键入“page.php?page=1&ipp=All&link=view-link”然后自动转换 /page/1/All/link.html

【问题讨论】:

  • 我不明白你的意思。
  • 我的要求是如果有人输入“page.php?page=1&ipp=All&link=view-link”然后自动转换/page/1/All/link.html
  • 通常情况正好相反。从“丑陋”的网址转换为“漂亮”的网址是没有意义的,因为用户已经输入了它们。
  • 如果 URL 类似于:page.php?page=2&ipp=None&link=view_link 变为 page/2/None/link.html,您是否需要相同的行为?还是仅针对具有这些特定值的一种情况?
  • 我需要对所有人都具有相同的行为,而不仅仅是针对特定值

标签: php url rewrite


【解决方案1】:

根据您的问题,我仍然不清楚您想要什么,但我会在黑暗中试探,并假设您想将用户从那些“丑陋”的 URL 重定向到更清晰的格式。如果是这样的话,这应该可以工作。

RewriteCond %{THE_REQUEST}  ^[A-Z]+\s/[^/]+/.*\.php
RewriteCond %{QUERY_STRING} page=([^&]+)
RewriteRule ^([^/]+/[^/]+)\.php /$1/%1 [C]
RewriteCond %{QUERY_STRING} ipp=([^&]+)
RewriteRule .* $0/%1 [C]
RewriteCond %{QUERY_STRING} link=view(_|-)([^&]+)
RewriteRule .* $0/%2.html? [R=301,L]

这会将转到folder/page.php?page=1&ipp=All&link=view-link(或者是/folder/page.php?page=1&ipp=All&link=view_link?你的问题两者都有,所以我让它接受)的用户重定向到folder/page/1/All/link.html,不管该原始URL的任何组成部分是什么.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多