0

是否可以以仅重写以下 url 而其余部分不重写的方式编辑 htacces?

http://www.example.com/index.php?x=foobar
 to
http://www.example.com/foobar/

我希望没有 x=... 作为变量的页面正常运行

我得到了以下内容,但这不起作用

Options +FollowSymLinks
RewriteEngine on

RewriteRule (.*)/ index.php?x=$1
RewriteCond $1 !\.(js|ico|gif|jpg|png|css|html|swf|mp3|wav|txt)$

谁能帮我?

4

1 回答 1

1

首先,RewriteCond必须放在RewriteRule它所属的之前。

但我认为你需要另一种方法来处理你的情况,如下所示:

RewriteRule (.*)\.php - [PT,L]
RewriteRule ^(.*)/$ index.php?x=$1
  • 第一条规则通过 (PT) 每个 PHP 页面,因此第二条规则仅适用于所有非 PHP 请求。
  • 第二条规则仅适用于“简单路径”,无论该路径中是否包含点(例如hello.gif/,也将匹配)。

如果这对您不起作用,那么您可以考虑以下几点来开始进一步的研究:

  • 模式([^\.]*)匹配所有没有点的东西
  • 如果文件或目录存在,请参阅RewriteCond 以跳过规则RewriteCond,其中RewriteRule仅在请求不指向现有文件或目录时使用以下内容

希望这可以帮助。

于 2012-12-30T16:47:35.510 回答