0

我正在尝试将子目录转换为搜索查询。所以基本上:

example.com/pizza

将转换为:

example.com/?s=pizza

我对 htaccess 有基本的了解,以前也做过类似的事情,但是这次我不能让它工作。这就是问题:

这有效:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /results/?s=$1 [L,QSA]

但是,当我将重写目标指向根目录时,用户将被重定向到“example.com”而没有查询字符串。

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /?s=$1 [L,QSA]

如何将 "example.com/pizza" 重写为 "example.com/?s=pizza" ?

4

1 回答 1

1

你可以试试这个:

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(?:.*)?/([^/]+)/?  [NC]
RewriteRule .*      /?s=%1                     [L]

静默地图:

http://example.com/any/number/of/folders/parameter带或不带斜杠。

至:

http://example.com/?s=parameter

假定所有字符串都是可变的。

对于永久且可见的重定向,请替换[L][R=301,L].

于 2013-02-19T04:49:58.257 回答