是否有可能以这样的方式编辑htaccess,只有以下url被重写,其余的不是?
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)$
谁能帮我?
首先,RewriteCond
必须放在它所属的RewriteRule
之前。
但我认为你需要另一种方法来处理你的情况,像这样:
RewriteRule (.*).php - [PT,L]
RewriteRule ^(.*)/$ index.php?x=$1
- 第一条规则通过(PT)每个PHP页面,所以第二条规则只适用于所有非PHP请求。
- 第二条规则只适用于"简单路径",无论该路径中是否有点(例如
hello.gif/
也会匹配)。
如果这对你不起作用,那么你可以考虑以下几点之一来开始进一步的研究:
- 模式
([^.]*)
匹配所有没有点的内容 - 请参阅RewriteCond跳过规则,如果文件或目录存在
RewriteCond
s,下面的RewriteRule
仅在请求不指向现有文件或目录时使用