使用查询字符串重写 URL



继续我在这里问的内容,我想自动重写下面的网址

http://testsite.com/siterootb/sample-page.php?bbi=value1&bbl=value2

http://testsite.com/siterootb/sample-page/value1/value2

我的htaccess现在看起来像

RewriteEngine on
RewriteCond %{QUERY_STRING} !^$
RewriteRule ^(.*) http://localhost%{REQUEST_URI}%1? [R=301,L]
###########################################################################
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/siterootb/([^/]+)/([^/]+)/([^/]+)
RewriteCond %{DOCUMENT_ROOT}/siterootb/%1.php -f
RewriteRule ^/?([^/]+)/([^/]+)/([^/]+) $1.php?bbi=$2&bbl=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
我已经经历了 URL 重写 - 查询字符串,URL

重写查询字符串,WordPress 如何使用 htaccess 从 URL 中删除 ? 以及更多我从 [query-string] [.htaccess]

添加以下规则:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /siterootb/([^.]+).php?bbi=([^& ]+)&bbl=([^& ]+)
RewriteRule ^ /siterootb/%1/%2/%3? [L,R=301]

必须与 %{THE_REQUEST} 变量匹配的原因是,您希望从字面上匹配所请求的内容,而不是 URI。URI 会随着规则的应用而更改,因此,如果您与%{REQUEST_URI}变量匹配,则将与另一个规则所做的更改进行匹配。

最新更新