我正在尝试将子目录转换为搜索查询。所以基本上:
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”?
答案 0 :(得分: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]
。