0

我需要采用以下方案:

  1. 如果 url 包含任何文件/脚本引用,请保留它而不重写

    example.com/index.php ---> leave without rewriting url
    
  2. 如果 url 不包含任何引用,则类似于:

    example.com/some-thing-is-here
    

    将其重写为:

    example.com?search.php?q=some-thing-is-here
    

我找到了(1)的解决方案,但它们都因(2)而失败。我是 htaccess 的新手,所以需要有关如何做的建议,或常见的通用方法。

4

1 回答 1

1

以下应该按照您的要求进行。除了排除文件之外,它还排除目录。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://www.example.com/search.php?q=$1 [R,L]

如果您想了解有关干净 URL 的更多信息,这篇文章有一些很好的信息。

如果您想了解有关 .htaccess 的更多信息,下面还有一些资源。该文件的使用相当复杂。一旦您知道它的功能,我建议您在需要时在 Google 上搜索所需的功能。它做了很多你可能永远不需要的事情。

  1. 更多 .htaccess 提示和技巧..
  2. 终极 Htaccess 文件示例
  3. URL重写指南
于 2012-11-15T19:45:27.857 回答