我需要采用以下方案:
如果网址包含任何文件/脚本引用,请保留该网址而不重写
example.com/index.php ---> leave without rewriting url
如果网址不包含任何引用,则类似于:
example.com/some-thing-is-here
将其重新写入:
example.com?search.php?q=some-thing-is-here
我找到了(1)的解决方案,但它们都失败了(2)。我是htaccess的新手,所以需要有关如何做的建议,或者常用的一般方法。
答案 0 :(得分:1)
以下内容应该按照您的要求进行。除了排除文件外,它还排除了目录。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://www.example.com/search.php?q=$1 [R,L]
如果您想了解有关干净网址的更多信息,This article会提供一些很好的信息。
如果您想了解有关.htaccess的更多信息,请参阅以下资源。使用此文件相当复杂。一旦您知道它的功能,我建议您在Google上搜索所需的功能,以便在需要时使用。它有很多你可能永远不需要的东西。